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

604 lines
16 KiB
ObjectPascal
Raw Permalink Normal View History

2025-05-27 14:08:09 +08:00
unit U_CWYFFPHXList;
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,
dxDateRanges, U_BaseList, Vcl.Menus, RM_e_Xls, Clipbrd;
type
TfrmCWYFFPHXList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
FactoryName: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v2CRTime: TcxGridDBColumn;
v2Qty: TcxGridDBColumn;
v2QtyUnit: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
GPM_1: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
v2Column1: TcxGridDBColumn;
VYB: TcxGridDBColumn;
v2FactoryName: TcxGridDBColumn;
v2Note: TcxGridDBColumn;
v2P_CodeName: TcxGridDBColumn;
v2ps: TcxGridDBColumn;
v2P_Color: TcxGridDBColumn;
P_CodeName: TEdit;
Label4: TLabel;
Button1: TButton;
Label8: TLabel;
P_Color: TEdit;
v2P_Code: TcxGridDBColumn;
CheckBox1: TCheckBox;
Label9: TLabel;
BatchNo: TEdit;
Label6: TLabel;
P_Code: TEdit;
v2OrderNo: TcxGridDBColumn;
v2Column14: TcxGridDBColumn;
v2P_HX: TcxGridDBColumn;
Label1: TLabel;
P_HX: TEdit;
cxTabControl1: TcxTabControl;
Label11: TLabel;
OrderNo: TEdit;
v2BZType: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2P_Spec: TcxGridDBColumn;
v2BatchNo: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
VC_chkstatus: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
VC_SSel: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
Tv1Column5: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
ToolButton3: TToolButton;
RMDB_Grid: TRMDBDataSet;
RMGrid: TRMGridReport;
ADOQueryPrint: TADOQuery;
ToolButton4: TToolButton;
RMXLSExport1: TRMXLSExport;
N2: TMenuItem;
Label2: TLabel;
FromDataID1: TEdit;
Tv1Column10: TcxGridDBColumn;
ToolButton5: TToolButton;
Tv1Column11: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
Tv1Column13: TcxGridDBColumn;
Tv1Column14: TcxGridDBColumn;
Tv1Column15: TcxGridDBColumn;
CheckBox2: TCheckBox;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn34: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
DS_2: TDataSource;
CDS_2: TClientDataSet;
GPM_2: TcxGridPopupMenu;
PopupMenu2: TPopupMenu;
MenuItem1: TMenuItem;
TV2Column1: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
cxSplitter1: TcxSplitter;
Tv1Column6: TcxGridDBColumn;
TV2Column3: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure cxTabControl1Change(Sender: TObject);
procedure FactoryNameKeyPress(Sender: TObject; var Key: Char);
procedure v2Column3PropertiesEditValueChanged(Sender: TObject);
procedure Tv1Column3PropertiesEditValueChanged(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ButtonEdit(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure TV2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure Tv1Column6PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure InitHZ();
public
fFlag: integer;
{ Public declarations }
RKFlag, FCYID, fmanage, FZKType, canshu1: string;
end;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_GYSSel;
{$R *.dfm}
procedure TfrmCWYFFPHXList.InitHZ();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('select A.FactoryNo,A.FactoryName,A.ComTaiTou,B.FactType,wFPhxNum=sum(A.Money-ISNULL(A.FPhxNum, 0)) ');
sql.Add(',WZPMoney=sum(case when isnull(A.ZPID,'''')='''' then A.Money else 0 end) ');
sql.Add(' from CW_Money_CR A');
sql.Add(' inner join Company B on A.FactoryNo=B.COCODE where B.Valid=''Y'' and B.FactType in (''<27><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD>'',''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'','<><C8BE>'') ');
sql.Add('and A.CRType='<><D3A6><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>'' and A.Status=''1'' ');
sql.Add('group by A.FactoryNo,A.FactoryName,A.ComTaiTou,B.FactType');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_2);
SInitCDSData(ADOQueryTemp, CDS_2);
end;
procedure TfrmCWYFFPHXList.MenuItem1Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_2.fieldbyname(TV2.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmCWYFFPHXList.InitGrid();
var
WSql: string;
begin
WSql := SGetFilters(Panel1, 1, 2);
if Trim(WSql) <> '' then
WSql := ' and ' + WSql;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
Filtered := False;
sql.Add(' select A.* ');
sql.Add(' ,FactType=(select FactType from Company X where X.CoCode=A.FactoryNo and X.Valid=''Y'' )');
sql.Add(' from V_CW_YFHXJD A ');
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' where isnull(BZType,'''')=''$'' ');
end;
1:
begin
sql.Add(' where isnull(BZType,'''')=''<27><>'' ');
end;
2:
begin
sql.Add(' where isnull(BZType,'''')=''<27>'' ');
end;
end;
if CheckBox2.Checked then
begin
sql.Add(' and isnull(FPhxNum,0)=0 ');
end
else
begin
if CheckBox1.Checked then
begin
sql.Add(' and A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
end;
end;
sql.Add(WSql);
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmCWYFFPHXList.N2Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmCWYFFPHXList.FactoryNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCWYFFPHXList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmCWYFFPHXList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption + 'TV1', TV1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(self.Caption + 'TV2', TV2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmCWYFFPHXList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(self.Caption + 'TV1', TV1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(self.Caption + 'TV2', TV2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
begdate.DateTime := Enddate.DateTime;
InitHZ();
InitGrid();
end;
procedure TfrmCWYFFPHXList.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
InitGrid();
InitHZ();
end;
procedure TfrmCWYFFPHXList.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmCWYFFPHXList.ToolButton3Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
if GetLSNo(ADOQueryCmd, maxId, 'PJ', 'CW_Money_CR', 4, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
FCWIDS := '';
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
if FCWIDS = '' then
FCWIDS := QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString))
else
FCWIDS := FCWIDS + ',' + QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString));
Edit;
FieldByName('ZPID').Value := maxId;
Post;
end;
Next;
end;
EnableControls;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('UPDATE CW_Money_CR set ZPID=' + QuotedStr(maxId));
sql.Add('where isnull(ZPID,'''')='''' and CWID in (' + FCWIDS + ') ');
ExecSQL;
end;
end;
procedure TfrmCWYFFPHXList.ToolButton4Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add('exec P_CW_Print_HBPJ @ZPID=' + QuotedStr(Trim(CDS_1.fieldbyname('ZPID').AsString)));
Open;
end;
try
ExportFtErpFile('<27>ϲ<EFBFBD>Ʊ<EFBFBD><C6B1>.rmf', ADOQueryTemp);
filepath := ExtractFilePath(Application.ExeName) + 'report\<5C>ϲ<EFBFBD>Ʊ<EFBFBD><C6B1>.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 TfrmCWYFFPHXList.ToolButton5Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
FCWIDS := '';
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
if FCWIDS = '' then
FCWIDS := QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString))
else
FCWIDS := FCWIDS + ',' + QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString));
Edit;
FieldByName('ZPID').Value := '';
Post;
end;
Next;
end;
EnableControls;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('UPDATE CW_Money_CR set ZPID=null');
sql.Add('where CWID in (' + FCWIDS + ') ');
// ShowMessage(sql.Text);
ExecSQL;
end;
end;
procedure TfrmCWYFFPHXList.CheckBox2Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCWYFFPHXList.cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FPS, FQty, FPrice, FQTFee, FMoney: 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;
end;
if Trim(FFieldName) <> 'Money' then
begin
FMoney := FQty * FPrice + FQTFee;
end;
with CDS_1 do
begin
Edit;
FieldByName('Money').Value := FMoney;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + Trim(mvalue));
if Trim(FFieldName) <> 'Money' then
sql.Add(' ,Money=' + FloatToStr(FMoney));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
Tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFFPHXList.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'OrderUnit';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if ShowModal = 1 then
begin
Self.CDS_1.Edit;
Self.CDS_1.FieldByName('QtyUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmCWYFFPHXList.Tv1Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalue: Boolean;
FFieldName: string;
begin
mvalue := TcxCheckBox(Sender).Checked;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
if mvalue then
sql.Add('update CW_Money_CR set ' + FFieldName + '=1')
else
sql.Add('update CW_Money_CR set ' + FFieldName + '=0');
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFFPHXList.Tv1Column6PropertiesEditValueChanged(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;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFFPHXList.TV2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
FactoryName.Text := CDS_2.FieldByName('FactoryName').AsString;
InitGrid();
end;
procedure TfrmCWYFFPHXList.ButtonEdit(Sender: TObject; AButtonIndex: Integer);
var
FComTaiTou: string;
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'GSTTDZ';
flagname := '<27><>˾̧ͷ';
if ShowModal = 1 then
begin
FComTaiTou := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
with Self.CDS_1 do
begin
Edit;
FieldByName('ComTaiTou').Value := Trim(FComTaiTou);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ComTaiTou=' + quotedstr(Trim(FComTaiTou)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end;
procedure TfrmCWYFFPHXList.v2Column3PropertiesEditValueChanged(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;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFFPHXList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
end.