D10SZKaiXiYa/A09财务通用管理/U_ExpenseList.pas

1255 lines
33 KiB
ObjectPascal
Raw Normal View History

2025-03-01 10:55:52 +08:00
unit U_ExpenseList;
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, cxLookAndFeels, cxLookAndFeelPainters,
2026-02-06 16:53:43 +08:00
cxNavigator, dxBarBuiltInMenu, dxDateRanges, U_BaseList, Vcl.Menus,
Vcl.Clipbrd, cxContainer, dxCore, cxDateUtils, dxSkinsCore,
dxSkinsDefaultPainters, dxScrollbarAnnotations, cxProgressBar;
2025-03-01 10:55:52 +08:00
type
TfrmExpenseList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
btnDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
OppCoName: TcxTextEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
2026-02-06 16:53:43 +08:00
Tv1FFTime: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
cxGridLevel1: TcxGridLevel;
GPM_1: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
btnAdd: TToolButton;
v2FactoryName: TcxGridDBColumn;
F_Name: TcxTextEdit;
Label4: TLabel;
Label6: TLabel;
P_Code: TcxTextEdit;
2026-02-06 16:53:43 +08:00
Tv1OppBankName: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
cxTabControl1: TcxTabControl;
Label10: TLabel;
ConNo: TcxTextEdit;
Label11: TLabel;
BuyConNo: TcxTextEdit;
btnChk: TToolButton;
btnReChk: TToolButton;
2026-02-06 16:53:43 +08:00
PM_1: TPopupMenu;
2025-03-01 10:55:52 +08:00
N1: TMenuItem;
ToolButton4: TToolButton;
Label2: TLabel;
OppParentCoName: TcxTextEdit;
ToolButton5: TToolButton;
N2: TMenuItem;
btnEdit: TToolButton;
2026-02-06 16:53:43 +08:00
Tv1OppBankCardNo: TcxGridDBColumn;
Tv1OurBankName: TcxGridDBColumn;
Tv1OurBankCardNo: TcxGridDBColumn;
Tv1Amount: TcxGridDBColumn;
Tv1Currency: TcxGridDBColumn;
Tv1ReimburseType: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
Tv1Column20: TcxGridDBColumn;
2026-02-06 16:53:43 +08:00
Tv1Status: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
Tv1Column22: TcxGridDBColumn;
2026-02-06 16:53:43 +08:00
Tv1PayStatus: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
ToolButton9: TToolButton;
N3: TMenuItem;
2026-03-09 12:49:21 +08:00
Tv1PayTime: TcxGridDBColumn;
2025-03-01 10:55:52 +08:00
Label1: TLabel;
begdate: TcxDateEdit;
Enddate: TcxDateEdit;
CheckBox1: TcxCheckBox;
2026-02-06 16:53:43 +08:00
Tv1TaxNumber: TcxGridDBColumn;
Tv1PrintStatus: TcxGridDBColumn;
TbnPay: TToolButton;
TbnRePay: TToolButton;
TbPrint: TToolButton;
2026-03-09 12:49:21 +08:00
Tv1FFID: TcxGridDBColumn;
Tv1Filler: TcxGridDBColumn;
Tv1FJFlag: TcxGridDBColumn;
Tv1PayMent: TcxGridDBColumn;
Tv1BankSlipNumber: TcxGridDBColumn;
Tv1Use: TcxGridDBColumn;
btnChk2: TToolButton;
btnReChk2: TToolButton;
2025-03-01 10:55:52 +08:00
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure OppCoNameKeyPress(Sender: TObject; var Key: Char);
procedure cxTabControl1Change(Sender: TObject);
procedure btnChkClick(Sender: TObject);
procedure btnReChkClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
2026-02-06 16:53:43 +08:00
procedure Tv1ReimburseTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure TbnPayClick(Sender: TObject);
procedure TbnRePayClick(Sender: TObject);
procedure TbPrintClick(Sender: TObject);
2026-03-09 12:49:21 +08:00
procedure btnChk2Click(Sender: TObject);
procedure btnReChk2Click(Sender: TObject);
2025-03-01 10:55:52 +08:00
private
procedure InitGrid();
procedure SetStatus();
public
FAuthority: string;
end;
implementation
uses
2026-02-06 16:53:43 +08:00
U_DataLink, U_RTFun, U_ExpenseInput, U_ZDYHelp, U_AttachmentUpload,
U_LabelPrint;
2025-03-01 10:55:52 +08:00
{$R *.dfm}
procedure TfrmExpenseList.SetStatus();
begin
2026-03-09 12:49:21 +08:00
btnChk.Enabled := false; //<2F><><EFBFBD><EFBFBD>1
btnReChk.Enabled := false; //<2F><><EFBFBD><EFBFBD>1
btnChk2.Enabled := false; //<2F><><EFBFBD><EFBFBD>2
btnReChk2.Enabled := false; //<2F><><EFBFBD><EFBFBD>2
2026-02-06 16:53:43 +08:00
TbnPay.Enabled := false; //<2F><><EFBFBD><EFBFBD>
TbnRePay.Enabled := false; //<2F><><EFBFBD><EFBFBD>
2025-03-01 10:55:52 +08:00
btnAdd.Enabled := false; //<2F><><EFBFBD><EFBFBD>
btnEdit.Enabled := false; //<2F>޸<EFBFBD>
2026-02-06 16:53:43 +08:00
btnDel.Enabled := false; //ɾ<><C9BE>
2025-03-01 10:55:52 +08:00
2026-02-06 16:53:43 +08:00
if Trim(FAuthority) = '<27><><EFBFBD><EFBFBD>' then
2025-03-01 10:55:52 +08:00
begin
btnAdd.Enabled := true;
case cxTabControl1.TabIndex of
0:
begin
btnEdit.Enabled := true;
btnDel.Enabled := true;
btnChk.Enabled := true;
end;
1:
begin
btnReChk.Enabled := true;
2026-03-09 12:49:21 +08:00
// btnChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
end;
2:
begin
// TbnPay.Enabled := true;
// btnReChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
end;
3:
begin
// TbnRePay.Enabled := true;
end;
end;
end;
if Trim(FAuthority) = '<27><><EFBFBD><EFBFBD>2' then
begin
btnAdd.Enabled := true;
case cxTabControl1.TabIndex of
0:
begin
btnEdit.Enabled := true;
btnDel.Enabled := true;
// btnChk.Enabled := true;
end;
1:
begin
// btnReChk.Enabled := true;
btnChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
end;
2:
begin
// TbnPay.Enabled := true;
btnReChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
end;
3:
begin
// TbnRePay.Enabled := true;
end;
end;
end;
if Trim(FAuthority) = '<27><><EFBFBD><EFBFBD>' then
begin
btnAdd.Enabled := true;
case cxTabControl1.TabIndex of
0:
begin
btnEdit.Enabled := true;
btnDel.Enabled := true;
// btnChk.Enabled := true;
end;
1:
begin
// btnReChk.Enabled := true;
// btnChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
2026-02-06 16:53:43 +08:00
end;
2:
2026-03-09 12:49:21 +08:00
begin
TbnPay.Enabled := true;
// btnReChk2.Enabled := true; //<2F><><EFBFBD><EFBFBD>2
end;
3:
2026-02-06 16:53:43 +08:00
begin
TbnRePay.Enabled := true;
end;
end;
end;
2026-03-09 12:49:21 +08:00
2026-02-06 16:53:43 +08:00
if Trim(FAuthority) = '<27><><EFBFBD><EFBFBD>' then
begin
btnAdd.Enabled := true;
case cxTabControl1.TabIndex of
0:
begin
btnEdit.Enabled := true;
btnDel.Enabled := true;
end;
1:
begin
2025-03-01 10:55:52 +08:00
end;
2:
begin
end;
end;
end;
end;
procedure TfrmExpenseList.InitGrid();
var
WSql: string;
begin
WSql := SGetFilters(Panel1, 1, 2);
if Trim(WSql) <> '' then
WSql := ' and ' + WSql
else
CheckBox1.Checked := True;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
Filtered := False;
2026-03-09 12:49:21 +08:00
sql.Add(' select A.* ');
sql.Add(',FJFlag=CAST((CASE WHEN (SELECT COUNT(X.FileName) FROM FJ_File X where X.TFType=''<27><><EFBFBD>õǼ<C3B5>'' and X.WBID=A.FFID)>0 THEN 1 ELSE 0 END) AS BIT) ');
sql.Add(' from Finance_Flow A ');
2025-03-01 10:55:52 +08:00
sql.Add(' where A.FFType=''<27><><EFBFBD>õǼ<C3B5>'' ');
case cxTabControl1.TabIndex of
0:
begin
2026-02-06 16:53:43 +08:00
sql.Add(' and Checkstatus='<><CEB4><EFBFBD><EFBFBD>'' ');
2025-03-01 10:55:52 +08:00
end;
1:
begin
2026-03-09 12:49:21 +08:00
sql.Add(' and Checkstatus=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1'' ');
2026-02-06 16:53:43 +08:00
end;
2:
2026-03-09 12:49:21 +08:00
begin
sql.add(' and Checkstatus=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2'' and PayStatus<>''<27>Ѹ<EFBFBD><D1B8><EFBFBD>'' ');
end;
3:
2026-02-06 16:53:43 +08:00
begin
sql.Add(' and PayStatus=''<27>Ѹ<EFBFBD><D1B8><EFBFBD>'' ');
2025-03-01 10:55:52 +08:00
end;
2026-03-09 12:49:21 +08:00
2025-03-01 10:55:52 +08:00
end;
if CheckBox1.Checked then
begin
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.Date) + ''' ');
2026-02-06 16:53:43 +08:00
sql.Add(' and A.FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.Date + 1) + ''' ');
2025-03-01 10:55:52 +08:00
end;
sql.Add(WSql);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
TV1.DataController.Filter.Clear;
end;
end;
procedure TfrmExpenseList.N1Click(Sender: TObject);
begin
SelOKNo(cds_1, True);
end;
procedure TfrmExpenseList.N2Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmExpenseList.N3Click(Sender: TObject);
begin
SelOKNo(cds_1, false);
end;
procedure TfrmExpenseList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmExpenseList.TBCloseClick(Sender: TObject);
begin
Close;
end;
2026-02-06 16:53:43 +08:00
procedure TfrmExpenseList.TbnPayClick(Sender: TObject);
var
FFFIDS: string;
2026-03-09 12:49:21 +08:00
SelectedDate: TDate;
DateForm: TForm;
cxDateEdit: TcxDateEdit;
cxTextEdit: TcxTextEdit;
btnOK, btnCancel: TButton;
lblDate, lblBankSlip: TLabel;
BankSlipCode: string;
2026-02-06 16:53:43 +08:00
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
2026-03-09 12:49:21 +08:00
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DateForm := TForm.Create(nil);
2026-02-06 16:53:43 +08:00
try
2026-03-09 12:49:21 +08:00
DateForm.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ';
DateForm.Width := 350;
DateForm.Height := 200;
DateForm.Position := poScreenCenter;
DateForm.BorderStyle := bsDialog;
DateForm.BorderIcons := [biSystemMenu];
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ǩ
lblDate := TLabel.Create(DateForm);
lblDate.Parent := DateForm;
lblDate.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:';
lblDate.Left := 20;
lblDate.Top := 23;
// <20><><EFBFBD><EFBFBD> cxDateEdit
cxDateEdit := TcxDateEdit.Create(DateForm);
cxDateEdit.Parent := DateForm;
cxDateEdit.Properties.Kind := ckDate; // <20><><EFBFBD><EFBFBD> ckDate <20><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
cxDateEdit.Properties.DateButtons := [btnToday]; // <20><><EFBFBD>ӽ<EFBFBD><D3BD>찴ť
cxDateEdit.Properties.ShowTime := False; // <20><><EFBFBD><EFBFBD>ʾʱ<CABE>䲿<EFBFBD><E4B2BF>
cxDateEdit.Properties.SaveTime := False;
cxDateEdit.Properties.DateOnError := deToday; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
cxDateEdit.Date := Now; // Ĭ<>ϵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
cxDateEdit.Left := 120;
cxDateEdit.Top := 18;
cxDateEdit.Width := 200;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ
lblBankSlip := TLabel.Create(DateForm);
lblBankSlip.Parent := DateForm;
lblBankSlip.Caption := '<27><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:';
lblBankSlip.Left := 20;
lblBankSlip.Top := 63;
// <20><><EFBFBD><EFBFBD> cxTextEdit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cxTextEdit := TcxTextEdit.Create(DateForm);
cxTextEdit.Parent := DateForm;
cxTextEdit.Left := 120;
cxTextEdit.Top := 58;
cxTextEdit.Width := 200;
cxTextEdit.Text := '';
// <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ť
btnOK := TButton.Create(DateForm);
btnOK.Parent := DateForm;
btnOK.Caption := <><C8B7>';
btnOK.ModalResult := mrOK;
btnOK.Left := 80;
btnOK.Top := 110;
btnOK.Width := 80;
btnOK.Default := True;
// <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ť
btnCancel := TButton.Create(DateForm);
btnCancel.Parent := DateForm;
btnCancel.Caption := <><C8A1>';
btnCancel.ModalResult := mrCancel;
btnCancel.Left := 180;
btnCancel.Top := 110;
btnCancel.Width := 80;
btnCancel.Cancel := True;
// <20><>ʾ<EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
if DateForm.ShowModal = mrOK then
2026-02-06 16:53:43 +08:00
begin
2026-03-09 12:49:21 +08:00
// <20><>ȡѡ<C8A1><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectedDate := Trunc(cxDateEdit.Date); // ȡ<><C8A1><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
BankSlipCode := Trim(cxTextEdit.Text);
2026-02-06 16:53:43 +08:00
2026-03-09 12:49:21 +08:00
// <20><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
if BankSlipCode = '' then
begin
if application.MessageBox('<27><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', <><C8B7>', MB_YESNO + MB_ICONQUESTION) <> IDYES then
Exit;
end;
2026-02-06 16:53:43 +08:00
2026-03-09 12:49:21 +08:00
// <20><>ʾѡ<CABE><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3A8><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
// ShowMessage('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + DateToStr(SelectedDate) + #13#10 + '<27><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + BankSlipCode);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>
if application.MessageBox(PChar('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + DateToStr(SelectedDate) + #13#10 + '<27><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + BankSlipCode + #13#10 + <>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'), <>ϸ<EFBFBD><CFB8><EFBFBD>', MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
// <20><>ȡѡ<C8A1>еļ<D0B5>¼
with CDS_1 do
begin
DisableControls;
First;
while not EOF do
begin
if FieldByName('SSel').AsBoolean then
begin
FFFIDS := FFFIDS + Trim(FieldByName('FFID').AsString) + ',';
end;
Next;
end;
EnableControls;
end;
// ɾ<><C9BE>ĩβ<C4A9>Ķ<EFBFBD><C4B6><EFBFBD>
if FFFIDS <> '' then
FFFIDS := Copy(FFFIDS, 1, Length(FFFIDS) - 1);
// <20><><EFBFBD><EFBFBD>ѡ<EFBFBD>еļ<D0B5>¼
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD>'' ');
// <20><><EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
sql.Add(',@PayTime=' + QuotedStr(FormatDateTime('yyyy-mm-dd', SelectedDate)));
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>Ҫ<EFBFBD>޸Ĵ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>
sql.Add(',@BankSlipNumber=' + QuotedStr(BankSlipCode));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
end;
finally
DateForm.Free;
2026-02-06 16:53:43 +08:00
end;
end;
2026-03-09 12:49:21 +08:00
//var
// FFFIDS: string;
// SelectedDate: TDate;
// DateForm: TForm;
// MonthCalendar: TMonthCalendar;
// btnOK, btnCancel: TButton;
//begin
// if CDS_1.IsEmpty then
// exit;
//
// if not CDS_1.Locate('SSel', True, []) then
// begin
// application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
// Exit;
// end;
//
// // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MonthCalendar
// DateForm := TForm.Create(nil);
// try
// DateForm.Caption := 'ѡ<>񸶿<EFBFBD><F1B8B6BF><EFBFBD><EFBFBD><EFBFBD>';
// DateForm.Width := 400;
// DateForm.Height := 400;
// DateForm.Position := poScreenCenter;
// DateForm.BorderStyle := bsDialog;
// DateForm.BorderIcons := [biSystemMenu];
//
// // <20><><EFBFBD><EFBFBD> MonthCalendar
// MonthCalendar := TMonthCalendar.Create(DateForm);
// MonthCalendar.Parent := DateForm;
// MonthCalendar.Left := 55;
// MonthCalendar.Top := 15;
// MonthCalendar.Width := 300; // <20><>ȷ<EFBFBD><C8B7><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>
// MonthCalendar.Height := 300; // <20><>ȷ<EFBFBD><C8B7><EFBFBD>ø߶<C3B8>
// MonthCalendar.Date := Now;
//
// // <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ť
// btnOK := TButton.Create(DateForm);
// btnOK.Parent := DateForm;
// btnOK.Caption := 'ȷ<><C8B7>';
// btnOK.ModalResult := mrOK;
// btnOK.Left := 120;
// btnOK.Top := MonthCalendar.Top + MonthCalendar.Height + 10;
// btnOK.Default := True;
//
// // <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ť
// btnCancel := TButton.Create(DateForm);
// btnCancel.Parent := DateForm;
// btnCancel.Caption := 'ȡ<><C8A1>';
// btnCancel.ModalResult := mrCancel;
// btnCancel.Left := btnOK.Left + btnOK.Width + 20;
// btnCancel.Top := btnOK.Top;
// btnCancel.Cancel := True;
//
// // <20><>ʾ<EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
// if DateForm.ShowModal = mrOK then
// begin
// // <20><>ȡѡ<C8A1><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// SelectedDate := MonthCalendar.Date;
//
// // <20><>ʾѡ<CABE><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
// // ShowMessage('ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + DateToStr(SelectedDate));
//
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>
// if application.MessageBox(PChar('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + DateToStr(SelectedDate)), 'ȷ<><C8B7>', MB_YESNO + MB_ICONQUESTION) = IDYES then
// begin
// // <20><>ȡѡ<C8A1>еļ<D0B5>¼
// with CDS_1 do
// begin
// DisableControls;
// First;
// while not EOF do
// begin
// if FieldByName('SSel').AsBoolean then
// begin
// FFFIDS := FFFIDS + Trim(FieldByName('FFID').AsString) + ',';
// end;
// Next;
// end;
// EnableControls;
// end;
//
// // ɾ<><C9BE>ĩβ<C4A9>Ķ<EFBFBD><C4B6><EFBFBD>
// if FFFIDS <> '' then
// FFFIDS := Copy(FFFIDS, 1, Length(FFFIDS) - 1);
//
// // <20><><EFBFBD><EFBFBD>ѡ<EFBFBD>еļ<D0B5>¼
// with CDS_1 do
// begin
// DisableControls;
// while CDS_1.Locate('SSel', True, []) do
// begin
// CDS_1.Delete;
// end;
// EnableControls;
// end;
//
// try
// ADOQueryCmd.Connection.BeginTrans;
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_Flow_SetStatus ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD>'' ');
// // <20><><EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
// sql.Add(',@PayTime=' + QuotedStr(FormatDateTime('yyyy-mm-dd', SelectedDate)));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
//
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
//
// ADOQueryCmd.Connection.CommitTrans;
// application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
//
// except
// ADOQueryCmd.Connection.RollbackTrans;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// InitGrid();
// end;
// end;
// end;
//
// finally
// DateForm.Free;
// end;
//end;
2026-02-06 16:53:43 +08:00
procedure TfrmExpenseList.TbnRePayClick(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_In_Bank_Flow ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3>', '<27><>ʾ');
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmExpenseList.TbPrintClick(Sender: TObject);
var
2026-03-09 12:49:21 +08:00
WSql, Wsql1: string;
2026-02-06 16:53:43 +08:00
begin
if CDS_1.IsEmpty then
Exit;
if not CDS_1.Locate('SSel', True, []) then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
WSql := '';
2026-03-09 12:49:21 +08:00
Wsql1 := '';
2026-02-06 16:53:43 +08:00
CDS_1.DisableControls;
with CDS_1 do
begin
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
if WSql <> '' then
begin
WSql := WSql + ',' + Trim(CDS_1.fieldbyname('FFID').AsString);
end
else
begin
WSql := Trim(CDS_1.fieldbyname('FFID').AsString);
end;
2026-03-09 12:49:21 +08:00
if Wsql1 <> '' then
2026-02-06 16:53:43 +08:00
begin
2026-03-09 12:49:21 +08:00
Wsql1 := Wsql1 + ',' + QuotedStr(Trim(CDS_1.fieldbyname('FFID').AsString));
2026-02-06 16:53:43 +08:00
end
else
begin
2026-03-09 12:49:21 +08:00
Wsql1 := QuotedStr(Trim(CDS_1.fieldbyname('FFID').AsString));
2026-02-06 16:53:43 +08:00
end;
end;
Next;
end;
end;
CDS_1.Locate('SSel', True, []);
CDS_1.EnableControls;
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'ExpenseList';
// FFiltration1 := WSql1;
FFiltration1 := WSql;
// ShowMessage(FFiltration1);
if ShowModal = 1 then
begin
2026-03-09 12:49:21 +08:00
WSql := '''' + WSql + '''';
2026-02-06 16:53:43 +08:00
// ShowMessage('1111');
with Self.ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' UPDATE F SET PrintStatus = ''<27>Ѵ<EFBFBD>ӡ'' FROM Finance_Flow F ');
2026-03-09 12:49:21 +08:00
SQL.Add(' WHERE EXISTS ( SELECT 1 FROM [dbo].[F_Tool_SplitString](' + WSql + ', '','') X WHERE X.RTValue = F.FFID )');
2026-02-06 16:53:43 +08:00
// showMessage(sql.Text);
execsql;
end;
end;
end;
finally
frmLabelPrint.Free;
end;
end;
2025-03-01 10:55:52 +08:00
procedure TfrmExpenseList.btnDelClick(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_Del ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3>', '<27><>ʾ');
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmExpenseList.FormShow(Sender: TObject);
begin
inherited;
2026-02-06 16:53:43 +08:00
ReadCxGrid(trim(Self.Caption), Tv1, '<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
2025-03-01 10:55:52 +08:00
Enddate.Date := SGetServerDate(ADOQueryTemp);
begdate.Date := Enddate.Date - 30;
2026-02-06 16:53:43 +08:00
FAuthority := self.fParameters1;
2025-03-01 10:55:52 +08:00
SetStatus();
InitGrid();
end;
procedure TfrmExpenseList.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
InitGrid();
end;
procedure TfrmExpenseList.cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FPS, FQty, FPrice, FQTFee, FMoney, FZKMoney: Double;
begin
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FPS := CDS_1.fieldbyname('PS').AsFloat;
FQty := CDS_1.fieldbyname('Qty').AsFloat;
FQTFee := CDS_1.fieldbyname('QTFee').AsFloat;
FPrice := CDS_1.fieldbyname('Price').AsFloat;
FMoney := CDS_1.fieldbyname('Money').AsFloat;
FZKMoney := CDS_1.fieldbyname('ZKMoney').AsFloat;
end;
if Trim(FFieldName) <> 'Money' then
begin
FMoney := FQty * FPrice + FQTFee - FZKMoney;
end;
with CDS_1 do
begin
Edit;
FieldByName('Money').Value := FMoney;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update Finance_Flow set ' + FFieldName + '=' + Trim(mvalue));
if Trim(FFieldName) <> 'Money' then
sql.Add(' ,Money=' + FloatToStr(FMoney));
sql.Add('where FFID=' + quotedstr(Trim(CDS_1.fieldbyname('FFID').AsString)));
ExecSQL;
end;
Tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmExpenseList.btnChkClick(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
2026-03-09 12:49:21 +08:00
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD>1'' ');
2025-03-01 10:55:52 +08:00
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2026-02-06 16:53:43 +08:00
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_In_Bank_Flow ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-03-01 10:55:52 +08:00
ADOQueryCmd.Connection.CommitTrans;
2026-03-09 12:49:21 +08:00
application.MessageBox('<27><><EFBFBD><EFBFBD>1<EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
2025-03-01 10:55:52 +08:00
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmExpenseList.btnReChkClick(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
2026-03-09 12:49:21 +08:00
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1'' ');
2025-03-01 10:55:52 +08:00
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2026-02-06 16:53:43 +08:00
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_In_Bank_Flow ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-03-01 10:55:52 +08:00
ADOQueryCmd.Connection.CommitTrans;
2026-03-09 12:49:21 +08:00
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
2025-03-01 10:55:52 +08:00
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmExpenseList.btnAddClick(Sender: TObject);
begin
try
frmExpenseInput := TfrmExpenseInput.Create(Application);
with frmExpenseInput do
begin
FFFID := '';
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmExpenseInput.Free;
end;
end;
2026-03-09 12:49:21 +08:00
procedure TfrmExpenseList.btnChk2Click(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD>2'' ');
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_In_Bank_Flow ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>2<EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmExpenseList.btnReChk2Click(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
FFFIDS := FFFIDS + Trim(CDS_1.fieldbyname('FFID').AsString) + ',';
CDS_1.Delete;
end;
EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
sql.Add(',@Operation=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2'' ');
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add(' exec P_Fin_In_Bank_Flow ');
// sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
2025-03-01 10:55:52 +08:00
procedure TfrmExpenseList.ToolButton4Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmExpenseList.ToolButton5Click(Sender: TObject);
begin
2026-02-06 16:53:43 +08:00
WriteCxGrid(trim(Self.Caption), Tv1, '<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
2025-03-01 10:55:52 +08:00
end;
procedure TfrmExpenseList.btnEditClick(Sender: TObject);
begin
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_Judge ');
sql.Add(' @FFIDS=' + QuotedStr(Trim(SELF.CDS_1.fieldbyname('FFID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
Exit;
end;
try
frmExpenseInput := TfrmExpenseInput.Create(Application);
with frmExpenseInput do
begin
FFFID := Trim(SELF.CDS_1.fieldbyname('FFID').AsString);
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmExpenseInput.Free;
end;
end;
procedure TfrmExpenseList.ToolButton9Click(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
try
frmAttachmentUpload := TfrmAttachmentUpload.Create(Application);
with frmAttachmentUpload do
begin
if Trim(Self.CDS_1.fieldbyname('filler').AsString) = dname then
FEditAuthority := True;
fkeyNO := Trim(Self.CDS_1.fieldbyname('FFID').AsString);
2026-03-09 12:49:21 +08:00
fType := '<27><><EFBFBD>õǼ<C3B5>';
2025-03-01 10:55:52 +08:00
if ShowModal = 1 then
begin
end;
end;
finally
frmAttachmentUpload.Free;
end;
2026-02-06 16:53:43 +08:00
end;
2025-03-01 10:55:52 +08:00
2026-02-06 16:53:43 +08:00
procedure TfrmExpenseList.Tv1ReimburseTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'ReimburseType';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Self.CDS_1.Edit;
Self.CDS_1.FieldByName('ReimburseType').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_1.Post;
end;
end;
finally
frmZDYHelp.Free;
end;
2025-03-01 10:55:52 +08:00
end;
procedure TfrmExpenseList.OppCoNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmExpenseList.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
end.