D10xhGemei/A09财务通用管理/U_CollectInput.pas

619 lines
18 KiB
ObjectPascal
Raw Permalink Normal View History

2024-12-14 17:23:12 +08:00
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;
2025-07-17 14:27:41 +08:00
Label26: TLabel;
ReconciliationDate: TcxDateEdit;
Label4: TLabel;
IVNo: TcxButtonEdit;
2024-12-14 17:23:12 +08:00
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);
2025-07-17 14:27:41 +08:00
procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
2024-12-14 17:23:12 +08:00
private
{ Private declarations }
procedure InitGrid();
function SaveData(): Boolean;
public
{ Public declarations }
2025-07-21 17:21:17 +08:00
FFFID, FAuthority, canshu4: string;
2024-12-14 17:23:12 +08:00
CopyFlag: Integer;
end;
var
frmCollectInput: TfrmCollectInput;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_BankSel, U_FinTradePlanSel,
2025-07-17 14:27:41 +08:00
U_FinTradeSalesContractSel, U_CompanyBankSel, U_InvoiceOutSel;
2024-12-14 17:23:12 +08:00
{$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);
2025-07-17 14:27:41 +08:00
ReconciliationDate.Date := SGetServerDateTime(ADOQueryTemp);
2024-12-14 17:23:12 +08:00
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 := '<27>Է<EFBFBD><D4B7>˻<EFBFBD>';
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 := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
2025-07-17 14:27:41 +08:00
OppCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
OppCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString);
2025-07-17 14:27:41 +08:00
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
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 := '<27>ͻ<EFBFBD>';
2025-07-17 14:27:41 +08:00
if Self.FAuthority = '<27><>Ȩ<EFBFBD><C8A8>' then
FAuthority := '<27><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>';
2024-12-14 17:23:12 +08:00
if ShowModal = 1 then
begin
2025-07-17 14:27:41 +08:00
OppCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
OppCoName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('CoCode').AsString);
2025-07-17 14:27:41 +08:00
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
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 := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
2025-07-17 14:27:41 +08:00
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
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 := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
2025-07-17 14:27:41 +08:00
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
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
2025-07-17 14:27:41 +08:00
if Self.FAuthority = '<27><>Ȩ<EFBFBD><C8A8>' then
FAuthority := <><D3B5><EFBFBD><EFBFBD>';
2024-12-14 17:23:12 +08:00
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 := '<27><>˾';
if ShowModal = 1 then
begin
2025-07-17 14:27:41 +08:00
OurCoName.Text := Trim(CDS_1.fieldbyname('CoName').AsString);
2024-12-14 17:23:12 +08:00
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 := '<27><>˾';
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 := '<27>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
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
2025-07-17 14:27:41 +08:00
if Self.FAuthority = '<27><>Ȩ<EFBFBD><C8A8>' then
FAuthority := <><D3B5><EFBFBD><EFBFBD>';
2024-12-14 17:23:12 +08:00
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;
2025-07-17 14:27:41 +08:00
procedure TfrmCollectInput.cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmInvoiceOutSel := TfrmInvoiceOutSel.Create(Application);
with frmInvoiceOutSel do
begin
if Self.FAuthority = '<27><>Ȩ<EFBFBD><C8A8>' then
canshu1 := <><C2BC>';
if ShowModal = 1 then
begin
Self.IVNo.Text := Trim(frmInvoiceOutSel.CDS_Invoice.fieldbyname('IVNo').AsString);
end;
end;
finally
frmInvoiceOutSel.Free;
end;
end;
2024-12-14 17:23:12 +08:00
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=''<27><>˾'' 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(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
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 := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('FFType').Value := '<27>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
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;
2025-07-21 17:21:17 +08:00
FieldByName('Store').Value := Trim(canshu4);
2024-12-14 17:23:12 +08:00
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), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmCollectInput.ToolButton3Click(Sender: TObject);
begin
ToolBar1.SetFocus;
if Trim(OppCoName.Text) = '' then
begin
Application.MessageBox('<27>Է<EFBFBD><D4B7><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if Trim(OurCoName.Text) = '' then
begin
Application.MessageBox('<27>ҷ<EFBFBD><D2B7><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if Trim(Currency.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
end.