D7gmYongjin/成品仓库(FinishedClothWarehouse.dll)/U_CKProductBCPOutListHZ.pas

447 lines
14 KiB
ObjectPascal
Raw Normal View History

2026-03-04 09:51:44 +08:00
unit U_CKProductBCPOutListHZ;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System,
RM_GridReport, cxCheckBox, Menus, MovePanel, RM_E_llPDF, cxCalendar, Math,
Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmCKProductBCPOutListHZ = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Label3: TLabel;
Label4: TLabel;
MPRTCodeName: TEdit;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
Tv1: TcxGridDBTableView;
cxGrid2Level1: TcxGridLevel;
cxGrid2: TcxGrid;
v2Column1: TcxGridDBColumn;
cxgrdPRTColor: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
Label5: TLabel;
orderNo: TEdit;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
RMXLSExport1: TRMXLSExport;
v1Column4: TcxGridDBColumn;
Label10: TLabel;
CkOrdNo: TEdit;
cxgrdganghao: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
MovePanel2: TMovePanel;
DS_JuanPRT: TDataSource;
cxGridPopupMenu2: TcxGridPopupMenu;
Label11: TLabel;
v1Column15: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
conNo: TEdit;
Label15: TLabel;
Label17: TLabel;
apid: TEdit;
cxgrdAPID: TcxGridDBColumn;
begtime: TDateTimePicker;
endTime: TDateTimePicker;
ADOQueryPrint: TADOQuery;
RMDB_Main: TRMDBDataSet;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
RM3: TRMGridReport;
v1Column24: TcxGridDBColumn;
RMDBPRT: TRMDBDataSet;
CDS_PRT: TClientDataSet;
Label22: TLabel;
KHNmae: TEdit;
Label24: TLabel;
PRTColor: TEdit;
ganghao: TEdit;
v1Column13: TcxGridDBColumn;
Label1: TLabel;
CKType: TComboBox;
Label6: TLabel;
lidan: TEdit;
Label7: TLabel;
ywy: TEdit;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
chkColor: TCheckBox;
chkConno: TCheckBox;
ToolButton1: TToolButton;
CheckBox1: TCheckBox;
Panel6: TPanel;
Label31: TLabel;
LBCPAP: TLabel;
BTLP: TButton;
BTNP: TButton;
TCBNOR: TComboBox;
Label8: TLabel;
Label9: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
PS: TEdit;
NETKGQty: TEdit;
KGQty: TEdit;
Qty: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure orderNoKeyPress(Sender: TObject; var Key: Char);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure CPTypeChange(Sender: TObject);
procedure CKTypeChange(Sender: TObject);
procedure edtSMNOKeyPress(Sender: TObject; var Key: Char);
procedure FormDestroy(Sender: TObject);
procedure chkColorClick(Sender: TObject);
procedure chkConnoClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure BTLPClick(Sender: TObject);
procedure BTNPClick(Sender: TObject);
private
FLeft, FTop: Integer;
CurrentPage, RecordsNumber: Integer;
procedure InitGrid();
{ Private declarations }
public
canshu1: string;
{ Public declarations }
end;
var
frmCKProductBCPOutListHZ: TfrmCKProductBCPOutListHZ;
implementation
uses
U_DataLink, U_Fun, U_SysLogHelp,U_RTFun;
{$R *.dfm}
procedure TfrmCKProductBCPOutListHZ.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCKProductBCPOutListHZ.FormCreate(Sender: TObject);
begin
EndDate.DateTime := SGetServerDateTime(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 3;
end;
procedure TfrmCKProductBCPOutListHZ.InitGrid();
var
fwhere, Pwhere: string;
begin
MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
if (chkColor.Checked = False) and (chkConno.Checked = False) then
begin
cxgrdganghao.Visible := True;
cxgrdPRTColor.Visible := True;
cxgrdAPID.Visible := True;
sql.Add('select top '+inttostr(RecordsNumber)+' * from ');
sql.Add('(select rownumber=Cast((row_number() over(order by CKDate desc)) as int)');
sql.Add(',COUNT(1) OVER() AS TotalCount,* from (');
sql.Add(' select * from P_FinishCK');
sql.Add(' where CKDate>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
sql.Add(' and CKDate<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
sql.Add(fwhere);
sql.Add(') temp_row)AA');
sql.Add(' where rownumber> '+inttostr((CurrentPage-1)*RecordsNumber) );
end;
if chkColor.Checked then
begin
cxgrdganghao.Visible := False;
cxgrdPRTColor.Visible := True;
cxgrdAPID.Visible := False;
sql.Add('select top '+inttostr(RecordsNumber)+' * from ');
sql.Add('(select rownumber=Cast((row_number() over(order by CKDate desc)) as int)');
sql.Add(',COUNT(1) OVER() AS TotalCount,* from (');
sql.Add('select sum(PS) PS,sum(NETKGQty) NETKGQty,sum(KGQty) KGQty,sum(Qty) Qty ');
sql.Add(' ,CKOrdNo,MainId,SubId,QtyUnit,APID='''',ganghao='''',KuanHao,KHNmae,CKDate,CKType,OrderNo ');
sql.Add(',MPRTCodeName,MPRTMF,MPRTKZ,ConNo,KHConno,lidan,YWY,PRTColor,PRTEColor ');
sql.Add(' from P_FinishCK ');
sql.Add(' where CKDate>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
sql.Add(' and CKDate<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
sql.Add(fwhere);
sql.Add(' group by CKOrdNo,MainId,SubId,QtyUnit,KuanHao,KHNmae,CKDate,CKType ');
sql.Add(' ,OrderNo,MPRTCodeName,MPRTMF,MPRTKZ,ConNo,KHConno,lidan,YWY,PRTColor,PRTEColor ');
sql.Add(') temp_row)AA');
sql.Add(' where rownumber> '+inttostr((CurrentPage-1)*RecordsNumber) );
end;
if chkConno.Checked then
begin
cxgrdganghao.Visible := False;
cxgrdPRTColor.Visible := False;
cxgrdAPID.Visible := False;
sql.Add('select top '+inttostr(RecordsNumber)+' * from ');
sql.Add('(select rownumber=Cast((row_number() over(order by CKDate desc)) as int)');
sql.Add(',COUNT(1) OVER() AS TotalCount,* from (');
sql.Add('select sum(PS) PS,sum(NETKGQty) NETKGQty,sum(KGQty) KGQty,sum(Qty) Qty ');
sql.Add(' ,CKOrdNo,MainId,QtyUnit,APID='''',ganghao='''',KuanHao,KHNmae,CKDate,CKType,OrderNo ');
sql.Add(',MPRTCodeName,MPRTMF,MPRTKZ,ConNo,KHConno,lidan,YWY,PRTColor='''',PRTEColor='''' ');
sql.Add(' from P_FinishCK ');
sql.Add(' where CKDate>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
sql.Add(' and CKDate<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
sql.Add(fwhere);
sql.Add(' group by CKOrdNo,MainId,QtyUnit,KuanHao,KHNmae,CKDate,CKType ');
sql.Add(' ,OrderNo,MPRTCodeName,MPRTMF,MPRTKZ,ConNo,KHConno,lidan,YWY ');
sql.Add(') temp_row)AA');
sql.Add(' where rownumber> '+inttostr((CurrentPage-1)*RecordsNumber) );
end;
//ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select sum(PS) PS,sum(NETKGQty) NETKGQty,sum(KGQty) KGQty,sum(Qty) Qty ');
sql.Add(' from P_FinishCK');
sql.Add(' where CKDate>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)));
sql.Add(' and CKDate<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)));
sql.Add(fwhere);
Open;
end;
PS.Text:=Trim(ADOQueryTemp.fieldbyname('PS').AsString);
NETKGQty.Text:=Trim(ADOQueryTemp.fieldbyname('NETKGQty').AsString);
KGQty.Text:=Trim(ADOQueryTemp.fieldbyname('KGQty').AsString);
Qty.Text:=Trim(ADOQueryTemp.fieldbyname('Qty').AsString);
MovePanel2.Visible := false;
finally
ADOQueryMain.EnableControls;
MovePanel2.Visible := false;
end;
end;
procedure TfrmCKProductBCPOutListHZ.TBRafreshClick(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmCKProductBCPOutListHZ.TBCloseClick(Sender: TObject);
begin
if Trim(DName)='ADMIN' then
begin
WriteCxGridAll(trim(self.Caption), Tv1,ADOQueryCmd,ADOQueryTemp);
end;
Close;
end;
procedure TfrmCKProductBCPOutListHZ.FormShow(Sender: TObject);
begin
ReadCxGridAll(trim(self.Caption), Tv1);
CurrentPage := 1;
RecordsNumber := 100;
end;
procedure TfrmCKProductBCPOutListHZ.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
SelExportData(Tv1, ADOQueryMain, '');
end;
procedure TfrmCKProductBCPOutListHZ.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmCKProductBCPOutListHZ.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmCKProductBCPOutListHZ.orderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmCKProductBCPOutListHZ.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmCKProductBCPOutListHZ.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmCKProductBCPOutListHZ.CPTypeChange(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.CKTypeChange(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.edtSMNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
end;
end;
procedure TfrmCKProductBCPOutListHZ.FormDestroy(Sender: TObject);
begin
frmCKProductBCPOutListHZ := nil;
end;
procedure TfrmCKProductBCPOutListHZ.chkColorClick(Sender: TObject);
begin
if chkColor.Checked = True then
chkConno.Checked := False;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.chkConnoClick(Sender: TObject);
begin
if chkConno.Checked = True then
chkColor.Checked := False;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.ToolButton1Click(Sender: TObject);
var
fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string;
begin
if CDS_Main.IsEmpty then
Exit;
ExportFtErpFile('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>ⵥ.rmf', ADOQueryTemp);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('exec P_Print_CKMDCPCK ');
sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))));
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_PRT);
SInitCDSData20(ADOQueryTemp, CDS_PRT);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><>Ʒ<EFBFBD><C6B7><EFBFBD>ⵥ.rmf';
if FileExists(fPrintFile) then
begin
RM3.LoadFromFile(fPrintFile);
RMVariables['Filler'] := trim(DName);
RM3.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD>ҵ<EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
procedure TfrmCKProductBCPOutListHZ.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
with Panel1 do
begin
for i:=0 to ControlCount-1 do
begin
if CheckBox1.Checked=True then
Controls[i].Tag:=1
else
Controls[i].Tag:=2;
end;
end;
end;
procedure TfrmCKProductBCPOutListHZ.BTLPClick(Sender: TObject);
begin
if CurrentPage > 1 then
CurrentPage := CurrentPage - 1;
InitGrid();
end;
procedure TfrmCKProductBCPOutListHZ.BTNPClick(Sender: TObject);
begin
if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
CurrentPage := CurrentPage + 1;
InitGrid();
end;
end.