unit U_BankList; 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, cxPC, cxCheckComboBox, cxDropDownEdit, Menus, RM_e_Xls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu; type TfrmBankList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Panel1: TPanel; BKName: TEdit; RMXLSExport2: TRMXLSExport; v2Column8: TcxGridDBColumn; Label1: TLabel; ADOQueryPrt: TADOQuery; btnadd: TToolButton; btndel: TToolButton; v2Column1: TcxGridDBColumn; btnok: TToolButton; Tv2Column1: TcxGridDBColumn; Tv2Column2: TcxGridDBColumn; Tv2Column3: TcxGridDBColumn; Tv2Column4: TcxGridDBColumn; Tv2Column5: TcxGridDBColumn; Tv2Column6: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure CustomerChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure v2Column8PropertiesEditValueChanged(Sender: TObject); procedure btnaddClick(Sender: TObject); procedure btndelClick(Sender: TObject); procedure btnokClick(Sender: TObject); procedure v2Column1PropertiesEditValueChanged(Sender: TObject); private { Private declarations } procedure InitGrid(); public fFlag: integer; { Public declarations } RKFlag, FCYID, fmanage: string; end; var frmBankList: TfrmBankList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmBankList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select * from CW_Bank order by BKXH '); Open; end; SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; end; procedure TfrmBankList.FormDestroy(Sender: TObject); begin frmBankList := nil; end; procedure TfrmBankList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmBankList.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(Self.Caption), Tv2, '财务管理'); Close; end; procedure TfrmBankList.FormShow(Sender: TObject); begin ReadCxGrid(Trim(Self.Caption), Tv2, '财务管理'); InitGrid(); if fFlag = 10 then begin Tv2.OptionsData.Editing := False; btnok.Visible := True; btnadd.Visible := False; btndel.Visible := False; end else begin btnok.Visible := False; btnadd.Visible := True; btndel.Visible := True; end; end; procedure TfrmBankList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmBankList.btnokClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; ModalResult := 1; end; procedure TfrmBankList.ToolButton2Click(Sender: TObject); var sql: string; begin if ADOQueryMain.Active then begin sql := SGetFilters(Panel1, 1, 2); SDofilter(ADOQueryMain, sql); SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); end; end; procedure TfrmBankList.cxTabControl1Change(Sender: TObject); begin InitGrid; end; procedure TfrmBankList.N1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; with CDS_HZ do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := true; post; next; end; First; EnableControls; end; end; procedure TfrmBankList.N2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; with CDS_HZ do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := false; post; next; end; First; EnableControls; end; end; procedure TfrmBankList.CustomerChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmBankList.FormCreate(Sender: TObject); begin fmanage := Trim(DParameters1); end; procedure TfrmBankList.v2Column1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CW_Bank '); sql.Add(' Set ' + FFieldName + '=' + Trim(mvalue)); sql.Add(' , Editer=''' + Trim(DName) + ''''); sql.Add(' , Edittime=getdate()'); sql.Add(' where BKID=' + quotedstr(CDS_HZ.fieldbyname('BKID').AsString)); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv2.Controller.EditingController.ShowEdit(); except tv2.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmBankList.v2Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CW_Bank '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); sql.Add(' , Editer=''' + Trim(DName) + ''''); sql.Add(' , Edittime=getdate()'); sql.Add(' where BKID=' + quotedstr(CDS_HZ.fieldbyname('BKID').AsString)); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv2.Controller.EditingController.ShowEdit(); except tv2.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmBankList.btnaddClick(Sender: TObject); var maxId: string; begin BKName.SetFocus; if GetLSNo(ADOQueryCmd, maxId, 'BK', 'CW_Bank', 4, 0) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into CW_Bank(BKID,Filler) values(' + quotedstr(Trim(maxId)) + ',' + quotedstr(Trim(dname)) + ')'); ExecSQL; end; InitGrid(); end; procedure TfrmBankList.btndelClick(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete CW_Bank where BKID=' + QuotedStr(CDS_HZ.FieldByName('BKID').AsString)); ExecSQL; end; CDS_HZ.Delete; end; end.