unit U_CollectInput; 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, cxDropDownEdit, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxContainer, cxCurrencyEdit, dxCore, cxDateUtils, cxMemo, dxSkinsCore, dxSkinsDefaultPainters; type TfrmCollectInput = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ToolButton3: TToolButton; ScrollBox1: TScrollBox; Label18: TLabel; Label19: TLabel; Label2: TLabel; Label5: TLabel; Label9: TLabel; Label20: TLabel; OurCoName: TcxButtonEdit; OppCoName: TcxButtonEdit; OppParentCoName: TcxButtonEdit; FFTime: TcxDateEdit; OurBankName: TcxButtonEdit; OppBankName: TcxButtonEdit; Label22: TLabel; Label23: TLabel; Label24: TLabel; ConNo: TcxButtonEdit; OrderNo: TcxButtonEdit; FFAbstract: TcxButtonEdit; Label8: TLabel; PayMent: TcxButtonEdit; Label3: TLabel; Amount: TcxCurrencyEdit; Currency: TcxComboBox; Label7: TLabel; Note: TcxMemo; Label1: TLabel; CollectPayType: TcxButtonEdit; Label26: TLabel; ReconciliationDate: TcxDateEdit; Label4: TLabel; IVNo: TcxButtonEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure PayMentBtnDnClick(Sender: TObject); procedure OppCoNameBtnUpClick(Sender: TObject); procedure OppParentCoNameBtnUpClick(Sender: TObject); procedure OurCoNameBtnUpClick(Sender: TObject); procedure OurBankNameBtnUpClick(Sender: TObject); procedure OppBankNameBtnUpClick(Sender: TObject); procedure ConNoBtnUpClick(Sender: TObject); procedure OrderNoBtnUpClick(Sender: TObject); procedure OurCoNameDblClick(Sender: TObject); procedure OurCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OppCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OppParentCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OurBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OppBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ConNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure FFAbstractPropertiesBttonClick(Sender: TObject; AButtonIndex: Integer); procedure CollectTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; public { Public declarations } FFFID, FAuthority, canshu4: string; CopyFlag: Integer; end; var frmCollectInput: TfrmCollectInput; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_BankSel, U_FinTradePlanSel, U_FinTradeSalesContractSel, U_CompanyBankSel, U_InvoiceOutSel; {$R *.dfm} procedure TfrmCollectInput.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select * from Finance_Flow where FFID=''' + Trim(FFFID) + ''''); Open; end; if not ADOQueryMain.IsEmpty then begin SCSHData(ADOQueryMain, ScrollBox1, 0); OppCoName.Properties.LookupItems.Text := Trim(ADOQueryMain.FieldByName('OppCoNo').AsString); OurCoName.Properties.LookupItems.Text := Trim(ADOQueryMain.FieldByName('OurCoNo').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(ADOQueryMain.FieldByName('OppParentCoNo').AsString); OurBankName.Properties.LookupItems.Text := Trim(ADOQueryMain.FieldByName('OurBankID').AsString); end else begin FFTime.Date := SGetServerDateTime(ADOQueryTemp); ReconciliationDate.Date := SGetServerDateTime(ADOQueryTemp); end; finally ADOQueryMain.EnableControls; end; end; procedure TfrmCollectInput.OppBankNameBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := self.OppCoName.Properties.LookupItems.Text; flagname := '对方账户'; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCollectInput.OppBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanyBankSel := TfrmCompanyBankSel.Create(Application); with frmCompanyBankSel do begin FCoCode := Trim(Self.OppCoName.Properties.LookupItems.Text); if ShowModal = 1 then begin OppBankName.Text := Trim(frmCompanyBankSel.CDS_1.fieldbyname('BankName').AsString); end; end; finally frmCompanyBankSel.Free; end; end; procedure TfrmCollectInput.OppCoNameBtnUpClick(Sender: TObject); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '客户'; if ShowModal = 1 then begin OppCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.OppCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '客户'; if Self.FAuthority = '低权限' then FAuthority := '理单业务'; if ShowModal = 1 then begin OppCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); OppBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.OppParentCoNameBtnUpClick(Sender: TObject); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '客户'; if ShowModal = 1 then begin OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.OppParentCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '客户'; if ShowModal = 1 then begin OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.OrderNoBtnUpClick(Sender: TObject); begin try frmFinTradePlanSel := TfrmFinTradePlanSel.Create(Application); with frmFinTradePlanSel do begin if ShowModal = 1 then begin with frmFinTradePlanSel.CDS_1 do begin self.ConNo.Text := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.OrderNo.Text := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); end; end; end; finally frmFinTradePlanSel.Free; end; end; procedure TfrmCollectInput.OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmFinTradePlanSel := TfrmFinTradePlanSel.Create(Application); with frmFinTradePlanSel do begin if Self.FAuthority = '低权限' then FAuthority := '拥有者'; if ShowModal = 1 then begin with frmFinTradePlanSel.CDS_1 do begin self.ConNo.Text := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('ConNo').AsString); self.OrderNo.Text := Trim(frmFinTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString); end; end; end; finally frmFinTradePlanSel.Free; end; end; procedure TfrmCollectInput.OurBankNameBtnUpClick(Sender: TObject); begin try frmBankSel := TfrmBankSel.Create(Application); with frmBankSel do begin if ShowModal = 1 then begin OurBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString); OurBankName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('BkID').AsString); end; end; finally frmBankSel.Free; end; end; procedure TfrmCollectInput.OurBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmBankSel := TfrmBankSel.Create(Application); with frmBankSel do begin if ShowModal = 1 then begin OurBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString); OurBankName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('BkID').AsString); end; end; finally frmBankSel.Free; end; end; procedure TfrmCollectInput.OurCoNameBtnUpClick(Sender: TObject); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '我司'; if ShowModal = 1 then begin OurCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString); OurCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.OurCoNameDblClick(Sender: TObject); begin TcxButtonEdit(Sender).Text := ''; TcxButtonEdit(Sender).Properties.LookupItems.Text := ''; end; procedure TfrmCollectInput.OurCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '我司'; if ShowModal = 1 then begin OurCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString); OurCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); OurBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmCollectInput.FormDestroy(Sender: TObject); begin frmCollectInput := nil; end; procedure TfrmCollectInput.PayMentBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmCollectInput.CollectTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var fsj: string; FWZ: Integer; begin fsj := Trim(TcxButtonEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin MainType := '收付款类型'; flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TcxButtonEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCollectInput.ConNoBtnUpClick(Sender: TObject); begin try frmFinTradeSalesContractSel := TfrmFinTradeSalesContractSel.Create(Application); with frmFinTradeSalesContractSel do begin if ShowModal = 1 then begin self.ConNo.Text := Trim(frmFinTradeSalesContractSel.CDS_1.fieldbyname('ConNo').AsString); end; end; finally frmFinTradeSalesContractSel.Free; end; end; procedure TfrmCollectInput.ConNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmFinTradeSalesContractSel := TfrmFinTradeSalesContractSel.Create(Application); with frmFinTradeSalesContractSel do begin if Self.FAuthority = '低权限' then FAuthority := '拥有者'; if ShowModal = 1 then begin self.ConNo.Text := Trim(frmFinTradeSalesContractSel.CDS_1.fieldbyname('ConNo').AsString); self.PayMent.Text := Trim(frmFinTradeSalesContractSel.CDS_1.fieldbyname('PayMent').AsString); end; end; finally frmFinTradeSalesContractSel.Free; end; end; procedure TfrmCollectInput.cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmInvoiceOutSel := TfrmInvoiceOutSel.Create(Application); with frmInvoiceOutSel do begin if Self.FAuthority = '低权限' then canshu1 := '录入'; if ShowModal = 1 then begin Self.IVNo.Text := Trim(frmInvoiceOutSel.CDS_Invoice.fieldbyname('IVNo').AsString); end; end; finally frmInvoiceOutSel.Free; end; end; procedure TfrmCollectInput.FFAbstractPropertiesBttonClick(Sender: TObject; AButtonIndex: Integer); var fsj: string; FWZ: Integer; begin fsj := Trim(TcxButtonEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin MainType := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TcxButtonEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCollectInput.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCollectInput.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmCollectInput.FormShow(Sender: TObject); begin if Trim(FFFID) = '' then begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select top 1 * from BS_Company where CoType=''我司'' order by CoCode '); Open; end; OurCoName.Text := Trim(ADOQueryTemp.fieldbyname('CoAbbrName').AsString); OurCoName.Properties.LookupItems.Text := Trim(ADOQueryTemp.fieldbyname('CoCode').AsString); end; InitGrid(); if CopyFlag = 99 then begin FFFID := ''; end; end; procedure TfrmCollectInput.TBRafreshClick(Sender: TObject); begin InitGrid(); end; function TfrmCollectInput.SaveData(): Boolean; var MaxId, MaxSubId, FCoCode, FCCID: string; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FFFID) = '' then begin if not GetLSNo(ADOQueryCmd, MaxId, 'SK', 'Finance_Flow', 4, 1) then raise Exception.Create('取最大号失败!'); end else begin MaxId := Trim(FFFID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from Finance_Flow where FFID=''' + Trim(FFFID) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FFFID) = '' then begin Append; FieldByName('FillId').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); FieldByName('FFFlag').Value := '应收收'; FieldByName('FFType').Value := '收款登记'; FieldByName('status').Value := '0'; FieldByName('FFQtyFlag').Value := -1; end else begin Edit; FieldByName('EditId').Value := Trim(DCode); FieldByName('Editer').Value := Trim(DName); FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('Store').Value := Trim(canshu4); FieldByName('OppCoNo').Value := Trim(OppCoName.Properties.LookupItems.Text); FieldByName('OurCoNo').Value := Trim(OurCoName.Properties.LookupItems.Text); FieldByName('OppParentCoNo').Value := Trim(OppParentCoName.Properties.LookupItems.Text); FieldByName('OurBankID').Value := Trim(OurBankName.Properties.LookupItems.Text); FieldByName('FFID').Value := Trim(MaxId); RTSetsavedata(ADOQueryCmd, 'Finance_Flow', ScrollBox1, 0); Post; end; ADOQueryCmd.Connection.CommitTrans; FCCID := Trim(MaxSubId); Result := True; except Result := false; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmCollectInput.ToolButton3Click(Sender: TObject); begin ToolBar1.SetFocus; if Trim(OppCoName.Text) = '' then begin Application.MessageBox('对方单位不能为空!', '提示', 0); Exit; end; if Trim(OurCoName.Text) = '' then begin Application.MessageBox('我方单位不能为空!', '提示', 0); Exit; end; if Trim(Currency.Text) = '' then begin Application.MessageBox('币种不能为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; end.