D7gmYushang/应收应付/U_SKCR.pas

667 lines
16 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_SKCR;
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, Menus, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxBarBuiltInMenu, cxCurrencyEdit;
type
TfrmSKCR = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
FactoryName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
TBADD: TToolButton;
VHL: TcxGridDBColumn;
VBZ: TcxGridDBColumn;
VYB: TcxGridDBColumn;
VBB: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
tchk: TToolButton;
tnochk: TToolButton;
cxTabControl1: TcxTabControl;
v2Ssel: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
CDS_YFS: TClientDataSet;
DS_YFS: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Money: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
ToolButton3: TToolButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
v2Column4: TcxGridDBColumn;
Tv2Column1: TcxGridDBColumn;
Tv2Column2: TcxGridDBColumn;
Label1: TLabel;
YWY: TEdit;
Label4: TLabel;
YWZB: TEdit;
cxSplitter1: TcxSplitter;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label5: TLabel;
HZKXType: TEdit;
Label7: TLabel;
money2: TEdit;
ToolButton4: TToolButton;
Panel2: TPanel;
XGDATE: TDateTimePicker;
Label8: TLabel;
Button1: TButton;
Button2: TButton;
ToolButton5: TToolButton;
Tv2Column3: TcxGridDBColumn;
Panel3: TPanel;
Label9: TLabel;
DateTimePicker1: TDateTimePicker;
Button3: TButton;
Button4: TButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure TBADDClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure tchkClick(Sender: TObject);
procedure tnochkClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure ToolButton3Click(Sender: TObject);
procedure YFGSTypeChange(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure v2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure SetStatus();
public
fflag: integer;
{ Public declarations }
FCYID, fmanage: string;
canshu1: string;
end;
var
frmSKCR: TfrmSKCR;
implementation
uses
U_DataLink, U_Fun, U_SKInput, U_skHx, U_ZDYHelp;
{$R *.dfm}
procedure TfrmSKCR.SetStatus();
var
i: integer;
begin
Tchk.Visible := false;
TNochk.Visible := false;
TBDel.Visible := false;
TBADd.Visible := false;
ToolButton3.Visible := False;
ToolButton5.Visible := False;
if fmanage = '<27><>Ȩ<EFBFBD><C8A8>' then
begin
case cxTabControl1.TabIndex of
0:
begin
Tchk.Visible := true;
TBDel.Visible := true;
TBADd.Visible := true;
ToolButton3.Visible := true;
end;
1:
begin
TNochk.Visible := true;
ToolButton3.Visible := true;
ToolButton5.Visible := true;
end;
2:
begin
end;
end;
end
else
begin
// case cxTabControl1.TabIndex of
// 0:
// begin
// Tchk.Visible := true;
// TBDel.Visible := true;
// TBADd.Visible := true;
// end;
// 1:
// begin
// TNochk.Visible := true;
// end;
// 2:
// begin
//
// end;
// end;
end;
end;
procedure TfrmSKCR.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' select A.*,HZKXType=CAST((select distinct(KXType) + '';'' from YF_MONEY_CR_SUB X where A.YFID=X.YFID for xml path('''') ) AS VARCHAR(100)) ');
SQL.Add(',MONEY2=CAST(MONEY AS VARCHAR)');
sql.Add(' from YF_Money_CR A');
sql.Add('where A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
sql.Add(' and A.CRType=''<27>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ');
if cxTabControl1.TabIndex < 2 then
sql.Add(' and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' ');
if fmanage = '<27><>ѯ' then
begin
sql.Add(' and A.YWY=' + QuotedStr(Trim(DName)));
end;
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
finally
ADOQueryMain.EnableControls;
ToolButton2.Click;
end;
end;
procedure TfrmSKCR.FormDestroy(Sender: TObject);
begin
frmSKCR := nil;
end;
procedure TfrmSKCR.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmSKCR.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmSKCR.TBDelClick(Sender: TObject);
var
FBBMoney, CRID: string;
begin
if CDS_HZ.IsEmpty then
Exit;
if CDS_HZ.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete YF_Money_CR where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + '''');
sql.Add('delete YF_Money_CR_Sub where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + '''');
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmSKCR.FormShow(Sender: TObject);
var
fsj: string;
begin
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
begdate.DateTime := Enddate.DateTime - 3;
XGDATE.DateTime := Enddate.DateTime;
DateTimePicker1.DateTime := Enddate.DateTime;
// fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''<27>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ';
// SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj);
SetStatus();
InitGrid();
end;
procedure TfrmSKCR.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmSKCR.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
end;
end;
procedure TfrmSKCR.FactoryNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmSKCR.TBADDClick(Sender: TObject);
begin
try
frmSKInput := TfrmSKInput.Create(self);
with frmSKInput do
begin
FYFID := '';
if showmodal = 1 then
begin
initGrid();
end;
end;
finally
frmSKInput.free;
end;
end;
procedure TfrmSKCR.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
SelExportData(Tv2, ADOQueryMain, '<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>');
end;
procedure TfrmSKCR.tchkClick(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
if CDS_HZ.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YF_Money_CR SET status=''1'' ');
sql.Add(' ,Chker=''' + Trim(DName) + '''');
sql.Add(' ,zddate=''' + formatdateTIme('yyyy-MM-dd', CDS_HZ.fieldbyname('CRTime').AsDateTime) + '''');
sql.Add(' ,Chktime=''' + formatdateTIme('yyyy-MM-dd', CDS_HZ.fieldbyname('CRTime').AsDateTime) + '''');
sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmSKCR.tnochkClick(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
if CDS_HZ.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YF_Money_CR SET status=''0'',Chker=null,Chktime=null,zddate=NULL ');
sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmSKCR.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
procedure TfrmSKCR.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from YF_Money_CR_SUB A');
sql.Add('where YFID=' + Quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString)));
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_YFS);
SInitCDSData20(ADOQueryTemp, CDS_YFS);
end;
procedure TfrmSKCR.ToolButton3Click(Sender: TObject);
begin
try
frmSKInput := TfrmSKInput.Create(self);
with frmSKInput do
begin
FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString);
if showmodal = 1 then
begin
initGrid();
end;
end;
finally
frmSKInput.free;
end;
end;
procedure TfrmSKCR.YFGSTypeChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmSKCR.N1Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
with CDS_HZ do
begin
DisableControls;
first;
while not eof do
begin
edit;
fieldbyname('ssel').Value := TRUE;
post;
next;
end;
First;
EnableControls;
end;
end;
procedure TfrmSKCR.N2Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
with CDS_HZ do
begin
DisableControls;
first;
while not eof do
begin
edit;
fieldbyname('ssel').Value := FALSE;
post;
next;
end;
First;
EnableControls;
end;
end;
procedure TfrmSKCR.v2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'PayMent';
flagname := '<27><><EFBFBD>ʽ';
if ShowModal = 1 then
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('update yf_money_cr set PayMent=' + QuotedStr(Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)));
sql.Add('where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + '''');
ExecSQL;
end;
with CDS_HZ do
begin
Edit;
CDS_HZ.fieldbyname('PayMent').AsString := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Post;
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmSKCR.ToolButton4Click(Sender: TObject);
begin
Panel2.Visible := True;
end;
procedure TfrmSKCR.Button2Click(Sender: TObject);
begin
Panel2.Visible := False;
end;
procedure TfrmSKCR.Button1Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
Exit;
if CDS_HZ.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YF_Money_CR SET CRTIME=' + quotedstr(FormatDateTime('yyyy-MM-dd', XGDATE.Date)));
sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmSKCR.ToolButton5Click(Sender: TObject);
begin
Panel3.Visible := True;
end;
procedure TfrmSKCR.Button4Click(Sender: TObject);
begin
Panel3.Visible := False;
end;
procedure TfrmSKCR.Button3Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
Exit;
if CDS_HZ.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD>޸<EFBFBD><DEB8>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YF_Money_CR SET zddate=' + quotedstr(FormatDateTime('yyyy-MM-dd', DateTimePicker1.Date)));
sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString)));
execsql;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
end.