unit U_SKCR; 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, cxDropDownEdit, Menus, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxCurrencyEdit; type TfrmSKCR = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; FactoryName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; TBADD: TToolButton; VHL: TcxGridDBColumn; VBZ: TcxGridDBColumn; VYB: TcxGridDBColumn; VBB: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; tchk: TToolButton; tnochk: TToolButton; cxTabControl1: TcxTabControl; v2Ssel: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column5: TcxGridDBColumn; CDS_YFS: TClientDataSet; DS_YFS: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column4: TcxGridDBColumn; v1Money: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; ToolButton3: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; v2Column4: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; Tv2Column2: TcxGridDBColumn; Label1: TLabel; YWY: TEdit; Label4: TLabel; YWZB: TEdit; cxSplitter1: TcxSplitter; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label5: TLabel; HZKXType: TEdit; Label7: TLabel; money2: TEdit; ToolButton4: TToolButton; Panel2: TPanel; XGDATE: TDateTimePicker; Label8: TLabel; Button1: TButton; Button2: TButton; ToolButton5: TToolButton; Tv2Column3: TcxGridDBColumn; Panel3: TPanel; Label9: TLabel; DateTimePicker1: TDateTimePicker; Button3: TButton; Button4: TButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure TBADDClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure tchkClick(Sender: TObject); procedure tnochkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton3Click(Sender: TObject); procedure YFGSTypeChange(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure v2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public fflag: integer; { Public declarations } FCYID, fmanage: string; canshu1: string; end; var frmSKCR: TfrmSKCR; implementation uses U_DataLink, U_Fun, U_SKInput, U_skHx, U_ZDYHelp; {$R *.dfm} procedure TfrmSKCR.SetStatus(); var i: integer; begin Tchk.Visible := false; TNochk.Visible := false; TBDel.Visible := false; TBADd.Visible := false; ToolButton3.Visible := False; ToolButton5.Visible := False; if fmanage = '高权限' then begin case cxTabControl1.TabIndex of 0: begin Tchk.Visible := true; TBDel.Visible := true; TBADd.Visible := true; ToolButton3.Visible := true; end; 1: begin TNochk.Visible := true; ToolButton3.Visible := true; ToolButton5.Visible := true; end; 2: begin end; end; end else begin // case cxTabControl1.TabIndex of // 0: // begin // Tchk.Visible := true; // TBDel.Visible := true; // TBADd.Visible := true; // end; // 1: // begin // TNochk.Visible := true; // end; // 2: // begin // // end; // end; end; end; procedure TfrmSKCR.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select A.*,HZKXType=CAST((select distinct(KXType) + '';'' from YF_MONEY_CR_SUB X where A.YFID=X.YFID for xml path('''') ) AS VARCHAR(100)) '); SQL.Add(',MONEY2=CAST(MONEY AS VARCHAR)'); sql.Add(' from YF_Money_CR A'); sql.Add('where A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' and A.CRType=''收款登记'' '); if cxTabControl1.TabIndex < 2 then sql.Add(' and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' '); if fmanage = '查询' then begin sql.Add(' and A.YWY=' + QuotedStr(Trim(DName))); end; Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; end; procedure TfrmSKCR.FormDestroy(Sender: TObject); begin frmSKCR := nil; end; procedure TfrmSKCR.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmSKCR.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '财务管理'); Close; end; procedure TfrmSKCR.TBDelClick(Sender: TObject); var FBBMoney, CRID: string; begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; 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('delete YF_Money_CR where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); sql.Add('delete YF_Money_CR_Sub where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmSKCR.FormShow(Sender: TObject); var fsj: string; begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime - 3; XGDATE.DateTime := Enddate.DateTime; DateTimePicker1.DateTime := Enddate.DateTime; // fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''收款登记'' '; // SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj); SetStatus(); InitGrid(); end; procedure TfrmSKCR.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmSKCR.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; procedure TfrmSKCR.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmSKCR.TBADDClick(Sender: TObject); begin try frmSKInput := TfrmSKInput.Create(self); with frmSKInput do begin FYFID := ''; if showmodal = 1 then begin initGrid(); end; end; finally frmSKInput.free; end; end; procedure TfrmSKCR.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2, ADOQueryMain, '付款列表'); end; procedure TfrmSKCR.tchkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; 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 YF_Money_CR SET status=''1'' '); sql.Add(' ,Chker=''' + Trim(DName) + ''''); sql.Add(' ,zddate=''' + formatdateTIme('yyyy-MM-dd', CDS_HZ.fieldbyname('CRTime').AsDateTime) + ''''); sql.Add(' ,Chktime=''' + formatdateTIme('yyyy-MM-dd', CDS_HZ.fieldbyname('CRTime').AsDateTime) + ''''); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmSKCR.tnochkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; 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 YF_Money_CR SET status=''0'',Chker=null,Chktime=null,zddate=NULL '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmSKCR.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmSKCR.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from YF_Money_CR_SUB A'); sql.Add('where YFID=' + Quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_YFS); SInitCDSData20(ADOQueryTemp, CDS_YFS); end; procedure TfrmSKCR.ToolButton3Click(Sender: TObject); begin try frmSKInput := TfrmSKInput.Create(self); with frmSKInput do begin FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString); if showmodal = 1 then begin initGrid(); end; end; finally frmSKInput.free; end; end; procedure TfrmSKCR.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmSKCR.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 TfrmSKCR.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 TfrmSKCR.v2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PayMent'; flagname := '付款方式'; if ShowModal = 1 then begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('update yf_money_cr set PayMent=' + QuotedStr(Trim(ClientDataSet1.fieldbyname('ZDYName').AsString))); sql.Add('where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); ExecSQL; end; with CDS_HZ do begin Edit; CDS_HZ.fieldbyname('PayMent').AsString := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Post; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmSKCR.ToolButton4Click(Sender: TObject); begin Panel2.Visible := True; end; procedure TfrmSKCR.Button2Click(Sender: TObject); begin Panel2.Visible := False; end; procedure TfrmSKCR.Button1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要修改日期吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; 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 YF_Money_CR SET CRTIME=' + quotedstr(FormatDateTime('yyyy-MM-dd', XGDATE.Date))); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmSKCR.ToolButton5Click(Sender: TObject); begin Panel3.Visible := True; end; procedure TfrmSKCR.Button4Click(Sender: TObject); begin Panel3.Visible := False; end; procedure TfrmSKCR.Button3Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要修改账单日期吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; 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 YF_Money_CR SET zddate=' + quotedstr(FormatDateTime('yyyy-MM-dd', DateTimePicker1.Date))); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; end.