unit U_CKSKHXList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu; type TfrmCKSKHXList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; FactoryName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Ssel: TcxGridDBColumn; Label4: TLabel; IVNO: TEdit; Label5: TLabel; ADOQueryMain: TADOQuery; ToolButton3: TToolButton; v2Column6: TcxGridDBColumn; v2KPNo: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2Column9: TcxGridDBColumn; Label1: TLabel; KHConno: TEdit; Label7: TLabel; v2Column10: TcxGridDBColumn; v2Column11: TcxGridDBColumn; FromId: TEdit; ToId: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FromIdKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag, FCYID: string; end; var frmCKSKHXList: TfrmCKSKHXList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmCKSKHXList.InitGrid(); var WSql: string; begin WSql := SGetFilters(Panel1, 1, 2); if Trim(WSql) <> '' then WSql := ' and ' + WSql; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered := False; sql.Add(' select A.* '); sql.Add(' from V_CW_HX_SK A where 1=1 '); sql.Add(' and A.Filldate>=''' + formatdateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and A.Filldate<''' + formatdateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''' '); sql.Add(WSql); Open; end; SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCKSKHXList.FormDestroy(Sender: TObject); begin frmCKSKHXList := nil; end; procedure TfrmCKSKHXList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKSKHXList.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv2, '财务管理'); Close; end; procedure TfrmCKSKHXList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption, Tv2, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime - 7; InitGrid(); end; procedure TfrmCKSKHXList.FromIdKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCKSKHXList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCKSKHXList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmCKSKHXList.FormCreate(Sender: TObject); begin cxGrid2.Align := AlClient; end; procedure TfrmCKSKHXList.ToolButton3Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; ADOQueryCmd.Connection.BeginTrans; try with CDS_HZ do begin DisableControls; first; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add(' update CW_Money_CR SET HXNum=A.HxNum - B.num '); sql.Add(' from CW_Money_CR A '); sql.Add(' inner join CW_HX_Log B on B.FromId=A.CWID '); sql.Add(' where B.HXID=' + quotedstr(trim(CDS_HZ.fieldbyname('HXID').AsString))); sql.Add(' update CW_Money_CR SET HXNum=A.HxNum - B.num '); sql.Add(' from CW_Money_CR A '); sql.Add(' inner join CW_HX_Log B on B.ToId=A.CWID '); sql.Add(' where B.HXID=' + quotedstr(trim(CDS_HZ.fieldbyname('HXID').AsString))); sql.Add(' update CW_Money_CR SET HXStatus=''0'' '); sql.Add(' from CW_Money_CR A '); sql.Add(' inner join CW_HX_Log B on B.FromId=A.CWID '); sql.Add(' where B.HXID=' + quotedstr(trim(CDS_HZ.fieldbyname('HXID').AsString))); sql.Add(' and hxNum=0 '); sql.Add(' update CW_Money_CR SET HXStatus=''0'' '); sql.Add(' from CW_Money_CR A '); sql.Add(' inner join CW_HX_Log B on B.ToId=A.CWID '); sql.Add(' where B.HXID=' + quotedstr(trim(CDS_HZ.fieldbyname('HXID').AsString))); sql.Add(' and hxNum=0 '); sql.Add(' delete from CW_HX_Log '); sql.Add(' where HXID=' + quotedstr(trim(CDS_HZ.fieldbyname('HXID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('撤销成功!', '提示信息'); TBRafresh.Click; except ; ADOQueryCmd.Connection.RollbackTrans; CDS_HZ.EnableControls; application.MessageBox('撤销失败!', '提示信息', 0); end; end; end.