unit U_CKFKHXList; 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 TfrmCKFKHXList = 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 frmCKFKHXList: TfrmCKFKHXList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmCKFKHXList.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_FK 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 TfrmCKFKHXList.FormDestroy(Sender: TObject); begin frmCKFKHXList := nil; end; procedure TfrmCKFKHXList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKFKHXList.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv2, '财务管理'); Close; end; procedure TfrmCKFKHXList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption, Tv2, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime - 7; InitGrid(); end; procedure TfrmCKFKHXList.FromIdKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCKFKHXList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCKFKHXList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmCKFKHXList.FormCreate(Sender: TObject); begin cxGrid2.Align := AlClient; end; procedure TfrmCKFKHXList.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.