D10myBiaoqi/A09财务通用管理/U_ReceivableList.pas

741 lines
20 KiB
ObjectPascal
Raw Permalink Normal View History

2024-07-04 16:01:24 +08:00
unit U_ReceivableList;
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,
cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters,
2024-08-01 10:13:17 +08:00
dxDateRanges, U_BaseList, Vcl.Menus, Vcl.Clipbrd, dxSkinWXI,
2025-11-08 10:16:26 +08:00
dxScrollbarAnnotations, cxCalc;
2024-07-04 16:01:24 +08:00
type
TfrmReceivableList = 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: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v2CRTime: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
GPM_1: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
btnAdd: TToolButton;
v2FactoryName: TcxGridDBColumn;
F_Name: TEdit;
Label4: TLabel;
CheckBox1: TCheckBox;
Label6: TLabel;
2025-11-08 10:16:26 +08:00
F_Code: TEdit;
2024-07-04 16:01:24 +08:00
v2OrderNo: TcxGridDBColumn;
cxTabControl1: TcxTabControl;
Label10: TLabel;
ConNo: TEdit;
Label11: TLabel;
BuyConNo: TEdit;
v2Column2: TcxGridDBColumn;
btnChk: TToolButton;
btnReChk: TToolButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
ToolButton4: TToolButton;
Label2: TLabel;
OppParentCoName: TEdit;
ToolButton5: TToolButton;
N2: TMenuItem;
btnEdit: TToolButton;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
Tv1Column13: TcxGridDBColumn;
Tv1Column14: TcxGridDBColumn;
Tv1Column15: TcxGridDBColumn;
Tv1Column16: TcxGridDBColumn;
Tv1Column17: TcxGridDBColumn;
Tv1Column18: TcxGridDBColumn;
Tv1Column19: TcxGridDBColumn;
Tv1Column20: TcxGridDBColumn;
Tv1Column21: TcxGridDBColumn;
Tv1Column22: TcxGridDBColumn;
Tv1Column23: TcxGridDBColumn;
N3: TMenuItem;
Tv1Column24: TcxGridDBColumn;
Tv1Column25: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column2: TcxGridDBColumn;
Label1: TLabel;
OrderNo: TEdit;
Tv1Column26: TcxGridDBColumn;
Tv1Column27: TcxGridDBColumn;
2024-08-01 10:13:17 +08:00
Tv1Column28: TcxGridDBColumn;
2024-09-20 16:26:35 +08:00
Tv1Column29: TcxGridDBColumn;
Tv1Column30: TcxGridDBColumn;
2025-01-13 16:36:43 +08:00
ToolButton2: TToolButton;
Tv1Column31: TcxGridDBColumn;
Tv1Column32: TcxGridDBColumn;
Tv1Column33: TcxGridDBColumn;
2026-05-13 09:12:14 +08:00
ToolButton3: TToolButton;
Tv1Column34: TcxGridDBColumn;
FFID: TEdit;
Label5: TLabel;
2024-07-04 16:01:24 +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 N1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
2025-01-13 16:36:43 +08:00
procedure ToolButton2Click(Sender: TObject);
2026-05-13 09:12:14 +08:00
procedure ToolButton3Click(Sender: TObject);
2024-07-04 16:01:24 +08:00
private
procedure InitGrid();
procedure SetStatus();
public
FAuthority: string;
2024-11-23 16:57:33 +08:00
MFFIDS: string;
2024-07-04 16:01:24 +08:00
end;
implementation
uses
2026-05-13 09:17:14 +08:00
U_DataLink, U_RTFun, U_ZDYHelp, U_ReceivableInput, U_ReceivableEdit,
U_CollectWriteOffList;
2024-07-04 16:01:24 +08:00
{$R *.dfm}
procedure TfrmReceivableList.SetStatus();
begin
btnChk.Enabled := false; //<2F><><EFBFBD><EFBFBD>
btnReChk.Enabled := false; //<2F><><EFBFBD><EFBFBD>
btnAdd.Enabled := false; //<2F><><EFBFBD><EFBFBD>
btnEdit.Enabled := false; //<2F>޸<EFBFBD>
btnDel.Enabled := false; //ɾ<><C9BE>
// 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;
end;
2:
begin
end;
end;
end;
end;
procedure TfrmReceivableList.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;
2025-08-08 09:57:29 +08:00
//sql.Add(' select CONVERT(varchar,A.SailingSchedule,23) SailingSchedule,A.*,Saleser=isnull((select Saleser from BS_Company X where X.CoName=A.OppCoName), (SELECT Saleser FROM Trade_Plan_Main Y WHERE Y.OrderNo = A.OrderNo)) ');
//sql.Add(' select CONVERT(varchar,A.SailingSchedule,23) SailingSchedule,A.*,Saleser=(select Saleser from BS_Company X where X.CoID=A.OppCoName)');
sql.Add(' select CONVERT(varchar,A.SailingSchedule,23) SailingSchedule,A.*,');
sql.Add(' Saleser=(select TOP 1 Saleser from BS_Company BC where BC.CoName=A.OppCoName OR BC.CoAbbrName=A.OppCoName)');
sql.Add(' ,JHSXF=ISNULL((select SUM(FWO1.WoSXFAmount) from Finance_WriteOff FWO1 where FWO1.ToId=A.FFID ), 0)');
sql.Add(' ,SSAmount=ISNULL((select SUM(FWO2.WoAmount)-SUM(FWO2.WoSXFAmount) from Finance_WriteOff FWO2 where FWO2.ToId=A.FFID ), 0)');
sql.Add(' ,SSCNYAmount=ISNULL((select SUM(FWO3.WoAmount*FWO3.WoJHExchangeRate)-SUM(FWO3.WoSXFAmount*FWO3.WoJHExchangeRate) from Finance_WriteOff FWO3 where FWO3.ToId=A.FFID ), 0)');
sql.Add(' from Finance_Flow A where A.FFType='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>''');
// SQL.Add('SELECT ');
// SQL.Add(' CONVERT(varchar, A.SailingSchedule, 23) AS SailingSchedule,');
// SQL.Add(' A.*,');
// //SQL.Add(' A.OrderNo,');
// SQL.Add(' Saleser = COALESCE(');
// SQL.Add(' (SELECT TOP 1 Saleser FROM BS_Company X WHERE X.CoName = A.OppCoName OR X.CoAbbrName = A.OppCoName),');
// SQL.Add(' CASE ');
// SQL.Add(' WHEN A.OrderNo IS NOT NULL ');
// SQL.Add(' THEN (SELECT TOP 1 Saleser FROM Trade_Plan_Main Y WHERE Y.OrderNo = A.OrderNo)');
// SQL.Add(' ELSE NULL');
// SQL.Add(' END');
// SQL.Add(' ),');
// SQL.Add(' JHSXF = ISNULL((SELECT SUM(X.WoSXFAmount) FROM Finance_WriteOff X WHERE X.ToId = A.FFID), 0),');
// SQL.Add(' SSAmount = ISNULL((SELECT SUM(X.WoAmount) - SUM(X.WoSXFAmount) FROM Finance_WriteOff X WHERE X.ToId = A.FFID), 0),');
// SQL.Add(' SSCNYAmount = ISNULL((SELECT SUM(X.WoAmount * X.WoJHExchangeRate) - SUM(X.WoSXFAmount * X.WoJHExchangeRate) FROM Finance_WriteOff X WHERE X.ToId = A.FFID), 0)');
// SQL.Add('FROM ');
// SQL.Add(' Finance_Flow A ');
// SQL.Add('WHERE ');
// SQL.Add(' A.FFType = ''Ӧ<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ');
2024-07-04 16:01:24 +08:00
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' and isnull(status,''0'')=''0'' ');
end;
1:
begin
sql.Add(' and isnull(status,''0'')=''9'' ');
end;
end;
if CheckBox1.Checked then
begin
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
sql.Add(' and FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
end;
sql.Add(WSql);
2025-11-08 10:16:26 +08:00
// showmessage(sql.text);
2024-07-04 16:01:24 +08:00
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
TV1.DataController.Filter.Clear;
end;
2024-11-23 16:57:33 +08:00
if MFFIDS <> '' then
CDS_1.Locate('FFID', MFFIDS, []);
2025-11-08 10:16:26 +08:00
MFFIDS := '';
2024-07-04 16:01:24 +08:00
end;
procedure TfrmReceivableList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_1, true)
end;
procedure TfrmReceivableList.N2Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmReceivableList.N3Click(Sender: TObject);
begin
SelOKNo(CDS_1, false)
end;
procedure TfrmReceivableList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmReceivableList.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmReceivableList.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;
2025-11-08 10:16:26 +08:00
with ADOQueryTemp do
begin
Close;
SQL.Clear;
2026-05-13 09:12:14 +08:00
sql.Add(' select * from Trade_Plan_Main where OrderNo = ' + QuotedStr(CDS_1.FieldByName('OrderNo').AsString) + ' and status in(''10'', ''12'') ');
2025-11-08 10:16:26 +08:00
open;
end;
if not ADOQueryTemp.IsEmpty then
begin
2026-05-13 09:12:14 +08:00
application.MessageBox('<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>ɾ<EFBFBD><C9BE>', '<27><>ʾ');
2025-11-08 10:16:26 +08:00
Exit;
end;
2024-07-04 16:01:24 +08:00
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(<><C9BE><EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmReceivableList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(Self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
2025-01-13 16:36:43 +08:00
begdate.DateTime := Enddate.DateTime - 91;
2024-07-04 16:01:24 +08:00
SetStatus();
InitGrid();
end;
procedure TfrmReceivableList.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_Fin_Generate_BQ ');
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
application.MessageBox(pchar(ADOQueryCmd.FieldByName('ShowMsg').AsString), '<27><>ʾ<EFBFBD><CABE>Ϣ');
Exit;
end;
InitGrid();
end;
procedure TfrmReceivableList.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 TfrmReceivableList.btnChkClick(Sender: TObject);
var
FFFIDS: string;
begin
if CDS_1.IsEmpty then
exit;
2024-08-01 10:13:17 +08:00
// if not VarIsNull(CDS_1.FieldByName('Price').Value) then
// begin
// application.MessageBox('<27><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ');
// Exit;
// end;
2024-07-04 16:01:24 +08:00
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_SetStatus ');
sql.Add(' @FFIDS=' + QuotedStr(FFFIDS));
sql.Add(',@Operation=''<27><><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)));
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3>', '<27><>ʾ');
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmReceivableList.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
2026-05-13 09:17:14 +08:00
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add(' select * from Trade_Plan_Main where OrderNo = ' + QuotedStr(CDS_1.FieldByName('OrderNo').AsString) + ' and status in(''10'', ''12'') ');
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
application.MessageBox(PChar('<27>ƻ<EFBFBD><C6BB><EFBFBD>' + CDS_1.FieldByName('OrderNo').AsString + '<27><><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>'), '<27><>ʾ');
Exit;
end;
2024-07-04 16:01:24 +08:00
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_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)));
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3>', '<27><>ʾ');
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid();
end;
end;
procedure TfrmReceivableList.btnAddClick(Sender: TObject);
begin
try
frmReceivableInput := TfrmReceivableInput.Create(Application);
with frmReceivableInput do
begin
FFFID := '';
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmReceivableInput.Free;
end;
end;
procedure TfrmReceivableList.ToolButton1Click(Sender: TObject);
2025-06-02 09:59:11 +08:00
var
MFFIDS: string;
2024-07-04 16:01:24 +08:00
begin
if CDS_1.IsEmpty then
exit;
2025-06-02 09:59:11 +08:00
if not CDS_1.Locate('SSel', True, []) then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
Exit;
end;
//
2025-11-08 10:16:26 +08:00
with ADOQueryTemp do
begin
Close;
SQL.Clear;
2026-05-13 09:12:14 +08:00
sql.Add(' select * from Trade_Plan_Main where OrderNo = ' + QuotedStr(CDS_1.FieldByName('OrderNo').AsString) + ' and status in(''10'', ''12'') ');
2025-11-08 10:16:26 +08:00
open;
end;
if not ADOQueryTemp.IsEmpty then
begin
2026-05-13 09:12:14 +08:00
application.MessageBox('<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7>޸<EFBFBD>', '<27><>ʾ');
2025-11-08 10:16:26 +08:00
Exit;
end;
MFFIDS := '';
2025-06-02 09:59:11 +08:00
with CDS_1 do
begin
DisableControls;
while CDS_1.Locate('SSel', True, []) do
begin
2024-07-04 16:01:24 +08:00
2025-11-08 10:16:26 +08:00
MFFIDS := MFFIDS + ',' + Trim(CDS_1.fieldbyname('FFID').AsString);
2025-06-02 09:59:11 +08:00
CDS_1.Delete;
end;
EnableControls;
end;
2024-07-04 16:01:24 +08:00
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Fin_Flow_Judge ');
sql.Add(' @FFIDS=' + QuotedStr(MFFIDS));
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
frmReceivableEdit := TfrmReceivableEdit.Create(Application);
with frmReceivableEdit do
begin
FFFIDS := MFFIDS;
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmReceivableEdit.Free;
end;
end;
2025-01-13 16:36:43 +08:00
procedure TfrmReceivableList.ToolButton2Click(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
frmReceivableInput := TfrmReceivableInput.Create(Application);
with frmReceivableInput do
begin
FFFID := Trim(SELF.CDS_1.fieldbyname('FFID').AsString);
PState := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmReceivableInput.Free;
end;
end;
2026-05-13 09:12:14 +08:00
procedure TfrmReceivableList.ToolButton3Click(Sender: TObject);
begin
frmCollectWriteOffList := TfrmCollectWriteOffList.create(self);
with frmCollectWriteOffList do
begin
ToId.text := Self.CDS_1.fieldbyname('FFID').AsString;
if showmodal = 1 then
begin
end;
free;
end;
end;
2024-07-04 16:01:24 +08:00
procedure TfrmReceivableList.ToolButton4Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmReceivableList.ToolButton5Click(Sender: TObject);
begin
WriteCxGrid(trim(Self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmReceivableList.btnEditClick(Sender: TObject);
begin
2025-11-08 10:16:26 +08:00
with ADOQueryTemp do
begin
Close;
SQL.Clear;
2026-05-13 09:12:14 +08:00
sql.Add(' select * from Trade_Plan_Main where OrderNo = ' + QuotedStr(CDS_1.FieldByName('OrderNo').AsString) + ' and status in(''10'', ''12'') ');
2025-11-08 10:16:26 +08:00
open;
end;
if not ADOQueryTemp.IsEmpty then
begin
2026-05-13 09:12:14 +08:00
application.MessageBox('<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7>޸<EFBFBD>', '<27><>ʾ');
2025-11-08 10:16:26 +08:00
Exit;
end;
2024-07-04 16:01:24 +08:00
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
frmReceivableInput := TfrmReceivableInput.Create(Application);
with frmReceivableInput do
begin
FFFID := Trim(SELF.CDS_1.fieldbyname('FFID').AsString);
if ShowModal = 1 then
begin
InitGrid();
end;
end;
finally
frmReceivableInput.Free;
end;
end;
procedure TfrmReceivableList.OppCoNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmReceivableList.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
end.