D7gmYushang/成品仓库(FinishedClothWarehouse.dll)/U_CKPDlist.pas
DESKTOP-E401PHE\Administrator 1d94a89439 0
2025-09-24 13:13:14 +08:00

573 lines
16 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_CKPDlist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common,
RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxPC, MovePanel,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu,
cxCheckBox, cxSplitter;
type
TfrmCKPDlist = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_CodeName: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1CRTime: TcxGridDBColumn;
v1Filler: TcxGridDBColumn;
Label3: TLabel;
Label4: TLabel;
C_CodeName: TEdit;
P_Code: TEdit;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
v1CPTYPE: TcxGridDBColumn;
ckName: TComboBox;
Label6: TLabel;
v1P_Color: TcxGridDBColumn;
ADOPrint: TADOQuery;
RMDB_MD: TRMDBDataSet;
RMGridReport1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
v1inoutNO: TcxGridDBColumn;
kuwei: TEdit;
Label8: TLabel;
cxTabControl1: TcxTabControl;
C_Color: TEdit;
Label9: TLabel;
custName: TEdit;
Label2: TLabel;
Tchk: TToolButton;
Tnochk: TToolButton;
Label5: TLabel;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
TBPD: TToolButton;
MovePanel2: TMovePanel;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Tv1Column3: TcxGridDBColumn;
Label7: TLabel;
C_KUWEI: TEdit;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn5: TcxGridDBColumn;
TV2Column5: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn8: TcxGridDBColumn;
TV2Column6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxSplitter1: TcxSplitter;
CDS_MX: TClientDataSet;
DataSource3: TDataSource;
TV2Column1: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
TV2Column3: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column4: TcxGridDBColumn;
RM3: TRMGridReport;
RMDBHZ: TRMDBDataSet;
CDS_PRT: TClientDataSet;
ADOQueryPrint: TADOQuery;
ADOQueryMain: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure C_CodeNameChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TchkClick(Sender: TObject);
procedure TnochkClick(Sender: TObject);
procedure TBPDClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton1Click(Sender: TObject);
private
procedure InitGrid();
procedure SetStatus();
procedure Initsub();
{ Private declarations }
public
fCKName: string;
canshu1: string;
{ Public declarations }
end;
var
frmCKPDlist: TfrmCKPDlist;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp, U_PDSMEdit, U_FUN;
{$R *.dfm}
procedure TfrmCKPDlist.InitSUB();
begin
try
ADOQueryCmd.DisableControls;
if CheckBox1.Checked = True then
begin
with ADOQueryCmd do
begin
Filtered := False;
Close;
sql.Clear;
SQL.Add('SELECT * from CK_BanCP_PD');
SQL.Add(' WHERE 1=1 '); //KCVALID=''Y''
SQL.Add('AND ISNULL(C_KUWEI,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_KUWEI').AsString)));
// SQL.Add('AND ISNULL(QtyUnit,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('QtyUnit').AsString)));
SQL.Add('AND ISNULL(PDID,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('PDID').AsString)));
Open;
end;
end;
if CheckBox2.Checked = True then
begin
with ADOQueryCmd do
begin
Filtered := False;
Close;
sql.Clear;
SQL.Add('SELECT * from CK_BanCP_PD');
SQL.Add(' WHERE 1=1 '); //KCVALID=''Y''
SQL.Add('AND ISNULL(C_KUWEI,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_KUWEI').AsString)));
// SQL.Add('AND ISNULL(QtyUnit,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('QtyUnit').AsString)));
SQL.Add('AND ISNULL(c_codename,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('c_codename').AsString)));
SQL.Add('AND ISNULL(c_color,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('c_color').AsString)));
SQL.Add('AND ISNULL(C_GANGNO,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('C_GANGNO').AsString)));
SQL.Add('AND ISNULL(PDID,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('PDID').AsString)));
// ShowMessage(sql.Text);
Open;
end;
end;
SCreateCDS20(ADOQueryCmd, CDS_MX);
SInitCDSData20(ADOQueryCmd, CDS_MX);
finally
ADOQueryCmd.EnableControls;
end;
end;
procedure TfrmCKPDlist.SetStatus();
begin
Tchk.Visible := false;
Tnochk.Visible := false;
case cxTabControl1.TabIndex of
0:
begin
Tchk.Visible := true;
Tnochk.Visible := true;
end;
1:
begin
end;
end;
end;
procedure TfrmCKPDlist.InitGrid();
begin
try
if (CheckBox1.Checked = False) and (CheckBox2.Checked = False) then
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select A.* ');
sql.Add('from CK_BanCP_PD A');
sql.Add('where begTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add('and begTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
if trim(FckName) <> '' then
sql.Add('and ckName=' + quotedstr(trim(FckName)));
if cxTabControl1.TabIndex < 2 then
sql.Add('and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' ');
open;
end;
end
else if (CheckBox1.Checked = true) then
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select PDID,convert(varchar(10),begTime,120)begTime,C_KUWEI,SUM(QTY)QTY,SUM(PRollNum)PRollNum,SUM(PQty)PQty ');
SQL.Add(',SUM(KCKGQTY)KCKGQTY,COUNT(MJID)rollnum ,convert(varchar(10),endTime,120)endTime,FILLER');
sql.Add('from CK_BanCP_PD A');
sql.Add('where begTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add('and begTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
if trim(FckName) <> '' then
sql.Add('and ckName=' + quotedstr(trim(FckName)));
if cxTabControl1.TabIndex < 2 then
sql.Add('and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' ');
SQL.Add('GROUP BY PDID,convert(varchar(10),begTime,120),C_KUWEI,convert(varchar(10),endTime,120),FILLER');
open;
end;
end
else if (CheckBox2.Checked = True) then
begin
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select PDID,convert(varchar(10),begTime,120)begTime,C_KUWEI,C_GANGNO,C_CODENAME,C_COLOR,SUM(QTY)QTY,SUM(PRollNum)PRollNum,SUM(PQty)PQty ');
SQL.Add(',SUM(KCKGQTY)KCKGQTY,COUNT(MJID)rollnum ,convert(varchar(10),endTime,120)endTime,FILLER');
sql.Add('from CK_BanCP_PD A');
sql.Add('where begTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add('and begTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
if trim(FckName) <> '' then
sql.Add('and ckName=' + quotedstr(trim(FckName)));
if cxTabControl1.TabIndex < 2 then
sql.Add('and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' ');
SQL.Add('GROUP BY PDID,C_GANGNO,C_CODENAME,C_COLOR,convert(varchar(10),begTime,120),C_KUWEI,convert(varchar(10),endTime,120),FILLER');
open;
end;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
end;
end;
procedure TfrmCKPDlist.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeCxGrid(self.Caption, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Action := cafree;
end;
procedure TfrmCKPDlist.FormDestroy(Sender: TObject);
begin
frmCKPDlist := nil;
end;
procedure TfrmCKPDlist.C_CodeNameChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
procedure TfrmCKPDlist.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
SetStatus();
InitGrid();
end;
procedure TfrmCKPDlist.FormCreate(Sender: TObject);
begin
BegDate.Date := date() - 7;
EndDate.Date := date();
cxGrid1.Align := alclient;
end;
procedure TfrmCKPDlist.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmCKPDlist.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmCKPDlist.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmCKPDlist.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmCKPDlist.TchkClick(Sender: TObject);
var
fPDId: string;
begin
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.* ');
sql.Add('from CK_BanCP_PD A');
sql.Add('WHERE A.status=0 ');
open;
end;
if not adoqueryTmp.IsEmpty then
begin
application.MessageBox('<27><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.C_Code as C_CODENAME,A.C_Color,c_kuwei,c_gangno,kckgqty,A.KCQtyUnit, RollNum=1,KCQty,mjid ');
sql.Add('from CK_BanCP_KC A ');
sql.Add('where KCValid=''Y'' ');
sql.Add('order by A.C_Code,A.C_Color,A.KCQtyUnit ');
open;
end;
if GetLSNo(ADOQueryCmd, fPDId, 'PD', 'CK_BanCP_PD', 3, 1) = False then
begin
Application.MessageBox('ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
ADOQueryCmd.Connection.BeginTrans;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_BanCP_PD where 1=2');
open;
end;
while not adoqueryTmp.Eof do
begin
with ADOQueryCmd do
begin
append;
fieldbyName('PDID').Value := fPDId;
fieldbyName('PDNO').Value := adoqueryTmp.recNo;
fieldbyName('CKName').Value := FckName;
fieldbyName('C_CodeName').Value := trim(adoqueryTmp.fieldbyName('C_CodeName').AsString);
fieldbyName('C_Color').Value := trim(adoqueryTmp.fieldbyName('C_Color').AsString);
fieldbyName('MJID').Value := trim(adoqueryTmp.fieldbyName('MJID').AsString);
fieldbyName('C_kuwei').Value := trim(adoqueryTmp.fieldbyName('C_kuwei').AsString);
fieldbyName('C_gangno').Value := trim(adoqueryTmp.fieldbyName('C_gangno').AsString);
fieldbyName('RollNum').Value := adoqueryTmp.fieldbyName('RollNum').AsInteger;
fieldbyName('Qty').Value := adoqueryTmp.fieldbyName('KCQty').AsFloat;
fieldbyName('kckgQty').Value := adoqueryTmp.fieldbyName('kckgQty').AsFloat;
fieldbyName('QtyUnit').Value := trim(adoqueryTmp.fieldbyName('KCQtyUnit').AsString);
fieldbyName('Filler').Value := trim(DName);
post;
end;
adoqueryTmp.Next;
end;
//˵<><CBB5>: CK_BanCP_KC PDFlag: 0:<3A><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>״̬<D7B4><CCAC>-1<><31><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>棬1<E6A3AC><31><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>2:<3A>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update CK_BanCP_KC SET PDFlag=-1 where KCVALID=''N'' ');
sql.Add('update CK_BanCP_KC SET PDFlag=1 where KCVALID=''Y'' ');
execsql;
end;
MovePanel2.Visible := false;
ADOQueryCmd.Connection.CommitTrans;
TBRafresh.Click;
except
MovePanel2.Visible := false;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
procedure TfrmCKPDlist.TnochkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if Application.MessageBox(<><C8B7><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update CK_BanCP_KC SET PDFlag=0 where PDFlag<>0 ');
sql.Add('update CK_BanCP_PD SET status=1 where pdid=''' + trim(CDS_Main.fieldbyName('pdid').AsString) + ''' ');
execsql;
end;
TBRafresh.Click;
except
Application.MessageBox('<27>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmCKPDlist.TBPDClick(Sender: TObject);
begin
frmPDSMEdit := TfrmPDSMEdit.Create(self);
with frmPDSMEdit do
begin
show;
end;
end;
procedure TfrmCKPDlist.CheckBox1Click(Sender: TObject);
begin
v1P_CodeName.Visible := TRUE;
v1P_Color.Visible := TRUE;
Tv1Column1.Visible := True;
C_CodeName.Enabled := TRUE;
C_CoLOR.Enabled := True;
if CheckBox1.Checked = True then
begin
CheckBox2.Checked := False;
v1P_CodeName.Visible := False;
v1P_Color.Visible := False;
Tv1Column1.Visible := False;
C_CodeName.Enabled := False;
C_CoLOR.Enabled := False;
end;
InitGrid();
end;
procedure TfrmCKPDlist.CheckBox2Click(Sender: TObject);
begin
v1P_CodeName.Visible := TRUE;
v1P_Color.Visible := TRUE;
Tv1Column1.Visible := True;
if CheckBox2.Checked = True then
begin
CheckBox1.Checked := False;
v1P_CodeName.Visible := TRUE;
v1P_Color.Visible := TRUE;
Tv1Column1.Visible := True;
end;
InitGrid();
end;
procedure TfrmCKPDlist.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if CDS_Main.IsEmpty = True then
Exit;
Initsub();
end;
procedure TfrmCKPDlist.ToolButton1Click(Sender: TObject);
var
fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string;
begin
if CheckBox1.Checked = False then
begin
Application.MessageBox('<27><>ѡ<EFBFBD>񰴿<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
Exit;
end;
if CDS_Main.IsEmpty then
Exit;
ExportFtErpFile('<27>̿<EFBFBD><CCBF>뵥.rmf', ADOQueryTmp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C>̿<EFBFBD><CCBF>뵥.rmf';
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete TBSubID where DName=''' + Trim(DCode) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM TBSubID where 1=2 ');
open;
end;
FMainID := '';
CDS_Main.DisableControls;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_Main do
begin
First;
while not Eof do
begin
if Fieldbyname('Ssel').AsBoolean then
begin
ADOQueryCmd.append;
// ADOQueryCmd.fieldbyname('ZID').Value := Trim(CDS_Main.fieldbyname('PDID').AsString);
ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Main.fieldbyname('C_KUWEI').AsString);
ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode);
ADOQueryCmd.post;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
CDS_Main.EnableControls;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add(' EXEC P_Print_KWPDB @PDID=' + QuotedStr(Trim(CDS_Main.fieldbyname('PDID').AsString)));
SQL.Add(',@DNAME=' + QuotedStr(Trim(DCode)));
Open;
end;
SCreateCDS20(ADOQueryPrint, CDS_PRT);
SInitCDSData20(ADOQueryPrint, CDS_PRT);
if FileExists(fPrintFile) then
begin
RM3.LoadFromFile(fPrintFile);
RMVariables['ZDR'] := trim(DName);
// RMVariables['FHYWY'] := trim(ComboBox2.Text);
RM3.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD>ҵ<EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
end.