unit U_ExpenseInput; 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, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxContainer, cxCurrencyEdit, dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine, dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark, dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI, dxSkinXmas2008Blue, dxCore, cxDateUtils, cxMemo; type TfrmExpenseInput = 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; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label8: TLabel; Label3: TLabel; Label7: TLabel; OurCoName: TcxButtonEdit; OppCoName: TcxButtonEdit; OppParentCoName: TcxButtonEdit; FFTime: TcxDateEdit; OurBankName: TcxButtonEdit; OppBankName: TcxButtonEdit; ConNo: TcxButtonEdit; OrderNo: TcxButtonEdit; FFAbstract: TcxButtonEdit; PayMent: TcxButtonEdit; Amount: TcxCurrencyEdit; Currency: TcxComboBox; Note: TcxMemo; 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 PayMentBtnUpClick(Sender: TObject); procedure OppCoNameBtnUpClick(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 ConNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure FFAbstractPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OppBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; public { Public declarations } FFFID: string; end; var frmExpenseInput: TfrmExpenseInput; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_BankSel, U_FinTradePlanSel, U_FinTradeSalesContractSel; {$R *.dfm} procedure TfrmExpenseInput.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); OurBankName.Properties.LookupItems.Text := Trim(ADOQueryMain.FieldByName('OurBankID').AsString); end else begin FFTime.Date := SGetServerDateTime(ADOQueryTemp); end; finally ADOQueryMain.EnableControls; end; end; procedure TfrmExpenseInput.OppBankNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); 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 TfrmExpenseInput.OppCoNameBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OppCoName'; flagname := '对方单位'; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmExpenseInput.OppCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '供应商'; if ShowModal = 1 then begin OppCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString); OppCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmExpenseInput.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('CoAbbrName').AsString); OppParentCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmExpenseInput.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 TfrmExpenseInput.OrderNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); 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 TfrmExpenseInput.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 TfrmExpenseInput.OurCoNameDblClick(Sender: TObject); begin TcxButtonEdit(Sender).Text := ''; TcxButtonEdit(Sender).Properties.LookupItems.Text := ''; end; procedure TfrmExpenseInput.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); end; end; finally frmCompanySel.Free; end; end; procedure TfrmExpenseInput.FormDestroy(Sender: TObject); begin frmExpenseInput := nil; end; procedure TfrmExpenseInput.PayMentBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmExpenseInput.PayMentBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(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 TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmExpenseInput.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 TfrmExpenseInput.ConNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); 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 TfrmExpenseInput.FFAbstractPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(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 TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmExpenseInput.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmExpenseInput.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmExpenseInput.FormShow(Sender: TObject); begin InitGrid(); end; procedure TfrmExpenseInput.TBRafreshClick(Sender: TObject); begin InitGrid(); end; function TfrmExpenseInput.SaveData(): Boolean; var MaxId, MaxSubId, FCoCode, FCCID: string; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FFFID) = '' then begin if not GetLSNo(ADOQueryCmd, MaxId, 'YS', '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('OppCoNo').Value := Trim(OppCoName.Properties.LookupItems.Text); FieldByName('OurCoNo').Value := Trim(OurCoName.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 TfrmExpenseInput.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.