D10myYicheng/财务管理(Financial.dll)/U_KhHKList.pas

451 lines
12 KiB
ObjectPascal
Raw Normal View History

2025-05-27 14:08:09 +08:00
unit U_KhHKList;
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, cxPC, cxTimeEdit, RM_e_Xls, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, U_BaseList;
type
TfrmKhHKList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
KHName: TEdit;
enddate: TDateTimePicker;
begdate: TDateTimePicker;
rmxlsxprt1: TRMXLSExport;
CDS_PRT: TClientDataSet;
DS_1: TDataSource;
CDS_1: TClientDataSet;
GPM_1: TcxGridPopupMenu;
Label1: TLabel;
conno: TEdit;
ToolButton2: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
Tv1Column15: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
fph: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
VC_ETD: TcxGridDBColumn;
etd: TcxGridDBColumn;
jdrq: TcxGridDBColumn;
kddh: TcxGridDBColumn;
yjcdrq: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Tv1Column8: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
GPM_2: TcxGridPopupMenu;
CDS_2: TClientDataSet;
DS_2: TDataSource;
Tv1Column11: TcxGridDBColumn;
GPM_3: TcxGridPopupMenu;
CDS_3: TClientDataSet;
DS_3: TDataSource;
ToolButton1: TToolButton;
ADOQueryPrint: TADOQuery;
Panel2: TPanel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
TV2Column3: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn9: TcxGridDBColumn;
cxGridDBColumn13: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
cxGrid3: TcxGrid;
TV3: TcxGridDBTableView;
v2P_Color: TcxGridDBColumn;
v2P_HX: TcxGridDBColumn;
v2ps: TcxGridDBColumn;
v2Qty: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
TV3Column1: TcxGridDBColumn;
v2BZType: TcxGridDBColumn;
v2QtyUnit: TcxGridDBColumn;
v2Column14: TcxGridDBColumn;
VYB: TcxGridDBColumn;
v2Note: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
cxGridLevel3: TcxGridLevel;
Tv1Column9: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
cbbDate: TComboBox;
Label2: TLabel;
cbbFKZT: TComboBox;
Label4: TLabel;
cbbDF: TComboBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
MiddleName: TEdit;
KHConNo: TEdit;
TV3Column2: TcxGridDBColumn;
TV2Column1: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FConNoChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure KHNameKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton2Click(Sender: TObject);
procedure ztPropertiesEditValueChanged(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure DateEdit(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure cbbFKZTChange(Sender: TObject);
private
FNowDate: TDateTime;
{ Private declarations }
procedure InitGrid();
procedure InitGrid2();
procedure InitGrid3();
function SaveData(): Boolean;
public
{ Public declarations }
RKFlag, FCYID, canshu1: string;
end;
//var
// frmKhHKList: TfrmKhHKList;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmKhHKList.InitGrid2();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select A.IVNO,A.ConNo,A.KHConNo,A.P_CodeName ');
sql.Add(' ,sum(PS) PS,sum(Qty) Qty,sum(Money) Money ');
sql.Add(' from CW_Money_CR A');
sql.Add(' where A.CRType='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ');
sql.Add(' and A.IVNO=' + QuotedStr(Trim(CDS_1.FieldByName('IVNO').AsString)));
sql.Add(' group by A.IVNO,A.ConNo,A.KHConNo,A.P_CodeName ');
OPEN;
end;
SCreateCDS(ADOQueryTemp, CDS_2);
SInitCDSData(ADOQueryTemp, CDS_2);
end;
procedure TfrmKhHKList.InitGrid3();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select A.* from CW_Money_CR A');
sql.Add(' where A.CRType='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' ');
sql.Add(' and A.IVNO=' + QuotedStr(Trim(CDS_2.FieldByName('IVNO').AsString)));
sql.Add(' and A.ConNo=' + QuotedStr(Trim(CDS_2.FieldByName('ConNo').AsString)));
sql.Add(' and A.P_CodeName=' + QuotedStr(Trim(CDS_2.FieldByName('P_CodeName').AsString)));
OPEN;
end;
SCreateCDS(ADOQueryTemp, CDS_3);
SInitCDSData(ADOQueryTemp, CDS_3);
end;
procedure TfrmKhHKList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
InitGrid2();
InitGrid3();
end;
function TfrmKhHKList.SaveData(): Boolean;
var
maxId, factoryno: string;
begin
if CDS_1.IsEmpty then
exit;
ToolBar1.SetFocus;
if CDS_1.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_1 do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('ssel').AsBoolean then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from DZ_DianFang where DFID=' + QuotedStr(Trim(CDS_1.fieldbyname('DFID').AsString)));
Open;
end;
with ADOQueryCmd do
begin
Edit;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'DZ_DianFang', 0);
Post;
end;
end;
next;
end;
First;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmKhHKList.InitGrid();
var
WSql: string;
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('EXEC P_DZ_UP_DFJD ');
ExecSQL;
end;
WSql := SGetFilters(Panel1, 1, 2);
if WSql <> '' then
WSql := ' and ' + WSql;
if cbbFKZT.Text = <><CEB4><EFBFBD><EFBFBD>' then
WSql := WSql + ' and HXMoney=0 ';
if cbbFKZT.Text = '<27>Ѹ<EFBFBD><D1B8><EFBFBD>' then
WSql := WSql + ' and HXMoney<>0 and QKMoney<>0 ';
if cbbFKZT.Text = '<27>ѽ<EFBFBD><D1BD><EFBFBD>' then
WSql := WSql + ' and QKMoney=0';
if cbbDF.Text = <><CEB4><EFBFBD><EFBFBD>' then
WSql := WSql + ' and ISNULL(DFDate,'''')='''' ';
if cbbDF.Text = '<27>ѵ<EFBFBD><D1B5><EFBFBD>' then
WSql := WSql + ' and ISNULL(DFDate,'''')<>'''' ';
if cbbDate.Text = '<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>' then
begin
WSql := WSql + ' and CKDate>=' + QuotedStr(FormatDateTime('yyyy-MM-dd', begdate.Date));
WSql := WSql + ' and CKDate<=' + QuotedStr(FormatDateTime('yyyy-MM-dd', enddate.Date));
end;
if cbbDate.Text = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
WSql := WSql + ' and MDQ>=' + QuotedStr(FormatDateTime('yyyy-MM-dd', begdate.Date));
WSql := WSql + ' and MDQ<=' + QuotedStr(FormatDateTime('yyyy-MM-dd', enddate.Date));
end;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('select * from DZ_DianFang A where 1=1 ');
SQL.Add(' and Filltime>=''' + FormatDateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add(' and Filltime<=''' + FormatDateTime('yyyy-MM-dd', enddate.Date) + ''' ');
sql.Add(WSql);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmKhHKList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmKhHKList.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>');
WriteCxGrid(Trim(Self.Caption) + 'TV3', TV3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmKhHKList.FormShow(Sender: TObject);
begin
inherited;
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>');
ReadCxGrid(Trim(Self.Caption) + 'TV3', TV3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
FNowDate := SGetServerDate(ADOQueryTemp);
begdate.Date := FNowDate - 7;
enddate.Date := FNowDate + 7;
InitGrid();
InitGrid2();
InitGrid3();
end;
procedure TfrmKhHKList.FConNoChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmKhHKList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmKhHKList.cbbFKZTChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmKhHKList.cxPageControl1Change(Sender: TObject);
begin
InitGrid;
end;
procedure TfrmKhHKList.KHNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
InitGrid();
end;
procedure TfrmKhHKList.ToolButton1Click(Sender: TObject);
var
filepath: string;
mBegdate, mEnddate: string;
begin
mBegdate := FormatDateTime('yyyy-MM-dd', begdate.Date);
mEnddate := FormatDateTime('yyyy-MM-dd', enddate.Date);
if CDS_1.IsEmpty then
exit;
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' exec P_DZ_Print_DFD ' + quotedstr(Trim(CDS_1.FieldByName('DFID').AsString)));
Open;
end;
try
filepath := ExtractFilePath(Application.ExeName) + 'report\<5C><><EFBFBD>ŵ<EFBFBD>.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>[' + filepath + ']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_IConError);
exit;
end;
RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date);
RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date);
RMVariables['ZDR'] := trim(DName);
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmKhHKList.ToolButton2Click(Sender: TObject);
begin
if SaveData() then
InitGrid();
end;
procedure TfrmKhHKList.DateEdit(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
Edit;
FieldByName('MDQ').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 21));
Post;
end;
end;
procedure TfrmKhHKList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitGrid2();
InitGrid3();
end;
procedure TfrmKhHKList.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitGrid3();
end;
procedure TfrmKhHKList.ztPropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
Edit;
FieldByName('ETA').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 18));
FieldByName('MDQ').Value := StrToDate(FormatDateTime('yyyy-MM-dd', FieldByName(FFieldName).asdatetime + 39));
Post;
end;
end;
end.