D10myYicheng/成品仓库(FinishedClothWarehouse.dll)/U_CKProductCPKCList.pas

647 lines
18 KiB
ObjectPascal
Raw Permalink Normal View History

2025-05-27 14:08:09 +08:00
unit U_CKProductCPKCList;
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, MovePanel, cxCheckBox, Menus, cxCalendar, RM_Common, RM_Class,
RM_GridReport, RM_System, RM_Dataset, BtnEdit, Math, Clipbrd, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, RM_e_Xls, U_BaseList, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, cxTextEdit, cxPC;
type
TfrmCKProductCPKCList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_1: TDataSource;
GPM_1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
MovePanel2: TMovePanel;
ThreeColorBase: TcxStyleRepository;
SHuangSe: TcxStyle;
SkyBlue: TcxStyle;
Default: TcxStyle;
QHuangSe: TcxStyle;
Red: TcxStyle;
FontBlue: TcxStyle;
TextSHuangSe: TcxStyle;
FonePurple: TcxStyle;
FoneClMaroon: TcxStyle;
FoneRed: TcxStyle;
RowColor: TcxStyle;
handBlack: TcxStyle;
cxBlue: TcxStyle;
RMDB_Main: TRMDBDataSet;
ADOQueryPrint: TADOQuery;
RM1: TRMGridReport;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
RMDBHZ: TRMDBDataSet;
RMDBPRT: TRMDBDataSet;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label14: TLabel;
ISCRTime: TCheckBox;
ToolButton1: TToolButton;
CDS_Label: TClientDataSet;
ToolButton2: TToolButton;
RMXLSExport1: TRMXLSExport;
BaoID: TEdit;
cxPageControl1: TcxPageControl;
cxTabSheet1: TcxTabSheet;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridDBColumn27: TcxGridDBColumn;
cxGridDBColumn28: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn37: TcxGridDBColumn;
cxGridDBColumn41: TcxGridDBColumn;
cxGridDBColumn31: TcxGridDBColumn;
cxGridDBColumn11: TcxGridDBColumn;
cxGridDBColumn13: TcxGridDBColumn;
cxGridDBColumn14: TcxGridDBColumn;
cxGridDBColumn15: TcxGridDBColumn;
cxGridDBColumn16: TcxGridDBColumn;
cxGridDBColumn18: TcxGridDBColumn;
cxGridDBColumn19: TcxGridDBColumn;
cxGridDBColumn20: TcxGridDBColumn;
cxGridDBColumn40: TcxGridDBColumn;
cxGridDBColumn21: TcxGridDBColumn;
cxGridDBColumn32: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxTabSheet2: TcxTabSheet;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
v1Column22: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Panel6: TPanel;
Label31: TLabel;
LBCPAP: TLabel;
BTLP: TButton;
BTNP: TButton;
TCBNOR: TComboBox;
DS_2: TDataSource;
CDS_2: TClientDataSet;
GPM_2: TcxGridPopupMenu;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label10: TLabel;
Label12: TLabel;
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label11: TLabel;
Label13: TLabel;
Label19: TLabel;
Label8: TLabel;
P_CodeName: TEdit;
orderNo: TEdit;
JYType: TComboBox;
LOTNO: TEdit;
conNo: TEdit;
APID: TEdit;
RKPlace: TEdit;
P_Color: TEdit;
ganghao: TEdit;
P_HX: TEdit;
P_Code: TEdit;
JYID: TEdit;
ToolButton3: TToolButton;
Panel4: TPanel;
Label20: TLabel;
Panel10: TPanel;
Image2: TImage;
Button1: TButton;
RadioGroup1: TRadioGroup;
TV2Column1: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Label9: TLabel;
P_ColorNo: TEdit;
Tv1Column4: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
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 Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure BTNPClick(Sender: TObject);
procedure BTLPClick(Sender: TObject);
procedure TCBNORChange(Sender: TObject);
procedure MPRTCodeNameKeyPress(Sender: TObject; var Key: Char);
procedure CPTypeKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure TV2DblClick(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure orderNoKeyPress(Sender: TObject; var Key: Char);
procedure JYTypeChange(Sender: TObject);
private
FLeft, FTop: Integer;
CurrentPage, RecordsNumber: Integer;
procedure SetStatus();
procedure InitGrid();
procedure GetLabel();
{ Private declarations }
public
issel: integer;
CANSHU2: string;
{ Public declarations }
end;
var
frmCKProductCPKCList: TfrmCKProductCPKCList;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_ProductOrderListSel, U_LbaelMap;
{$R *.dfm}
procedure TfrmCKProductCPKCList.GetLabel();
var
fsj: string;
begin
fsj := 'select distinct(LMName) name from Lbael_Map where LMType=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>뵥'' ';
SInitRadioGroupBySql(ADOQueryCmd, RadioGroup1, true, fsj);
with ADOQueryTemp do
begin
Filtered := False;
Close;
sql.Clear;
Sql.Add('select * from Lbael_Map where LMType=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>뵥''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_Label);
SInitCDSData(ADOQueryTemp, CDS_Label);
end;
procedure TfrmCKProductCPKCList.SetStatus();
begin
case cxPageControl1.ActivePageIndex of
0:
begin
ClearOrHideControls(Panel1, '0', True, True);
ClearOrHideControls(Panel1, '1', True, False);
end;
1:
begin
ClearOrHideControls(Panel1, '0', false, True);
ClearOrHideControls(Panel1, '1', True, True);
end;
end;
end;
procedure TfrmCKProductCPKCList.FormDestroy(Sender: TObject);
begin
inherited;
frmCKProductCPKCList := nil;
end;
procedure TfrmCKProductCPKCList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmCKProductCPKCList.FormCreate(Sender: TObject);
begin
inherited;
EndDate.DateTime := SGetServerDateTime(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 20;
canshu2 := Trim(Self.fParameters2);
end;
procedure TfrmCKProductCPKCList.Image2Click(Sender: TObject);
begin
Panel4.Visible := false;
end;
procedure TfrmCKProductCPKCList.InitGrid();
var
WSql: string;
begin
MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
WSql := SGetFilters(Panel1, 1, 2);
if Trim(WSql) <> '' then
WSql := ' and ' + WSql;
try
ADOQueryMain.DisableControls;
case cxPageControl1.ActivePageIndex of
0:
begin
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select LOTNO,A.OrderNo,A.ConNo,A.P_Code,A.P_CodeName,A.P_Spec,A.P_Color,A.P_ColorNo,A.P_KuanNo,A.P_MF,A.P_KZ,A.P_HX,A.APID,A.GangNo,A.RCGangNo ');
sql.Add(' ,sum(A.JYGW) JYGW, sum(A.JYTare) JYTare, sum(A.JYNW) JYNW,sum(A.JYLen) JYLen, sum(A.JYYLen) JYYLen ');
sql.Add('from V_Cloth_CP_KC A ');
sql.Add('where 1=1 ' + (WSql));
sql.Add('and exists(select jyid from jy_cloth E WHERE E.JYID=A.JYID AND E.fdanwei= ' + QuotedStr(Trim(canshu2)));
sql.Add(')');
sql.Add('group by LOTNO,A.OrderNo,A.ConNo,A.P_Code,A.P_CodeName,A.P_Spec,A.P_Color,A.P_ColorNo,A.P_KuanNo,A.P_MF,A.P_KZ,A.P_HX,A.APID,A.GangNo,A.RCGangNo ');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_2);
SInitCDSData(ADOQueryMain, CDS_2);
end;
1:
begin
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select top ' + inttostr(RecordsNumber) + ' * ');
sql.Add(' ,DJBRCGangNo =(select X.RCGangNo from CK_SXPB_CR X where X.SPID=temp_row.APID)');
sql.Add(' from ');
sql.Add('(select rownumber=cast((row_number() over(order by AA.filltime desc)) as int)');
sql.Add(',COUNT(1) OVER() AS TotalCount');
sql.Add(',* from V_Cloth_CP_KC AA where 1=1 ' + WSql);
sql.Add('and exists(select jyid from jy_cloth E WHERE E.JYID=AA.JYID AND E.fdanwei= ' + QuotedStr(Trim(canshu2)));
sql.Add(')');
sql.Add(') temp_row');
sql.Add(' where rownumber> ' + inttostr(((CurrentPage - 1) * RecordsNumber)));
sql.Add(' order by rownumber');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));
end;
end;
MovePanel2.Visible := false;
finally
ADOQueryMain.EnableControls;
MovePanel2.Visible := false;
end;
end;
procedure TfrmCKProductCPKCList.JYTypeChange(Sender: TObject);
begin
inherited;
InitGrid();
end;
procedure TfrmCKProductCPKCList.TBRafreshClick(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductCPKCList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmCKProductCPKCList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmCKProductCPKCList.FormShow(Sender: TObject);
begin
inherited;
CurrentPage := 1;
RecordsNumber := 500;
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
SetStatus();
GetLabel();
end;
procedure TfrmCKProductCPKCList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmCKProductCPKCList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmCKProductCPKCList.TV2DblClick(Sender: TObject);
begin
AssignmentControls(Panel1, CDS_2, '0');
cxPageControl1.ActivePageIndex := 1;
end;
procedure TfrmCKProductCPKCList.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 TfrmCKProductCPKCList.BTNPClick(Sender: TObject);
begin
if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
CurrentPage := CurrentPage + 1;
InitGrid();
end;
procedure TfrmCKProductCPKCList.Button1Click(Sender: TObject);
var
fPrintFile, fPrintFile10, FMainID, LBName: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
LBName := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
ExportFtErpFile(LBName + '.rmf', ADOQueryTemp);
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('SubId').Value := Trim(CDS_Main.fieldbyname('JYID').AsString);
ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode);
ADOQueryCmd.post;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
CDS_Main.EnableControls;
if CDS_Label.Locate('LMName', LBName, []) then
begin
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @Code=' + quotedstr(Trim(DCode)));
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_PRT);
SInitCDSData(ADOQueryPrint, CDS_PRT);
if trim(CDS_Label.fieldbyname('LMSql1').AsString) <> '' then
begin
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql1').AsString) + ' @Code=' + quotedstr(Trim(DCode)));
Open;
end;
end;
SCreateCDS(ADOQueryPrint, CDS_HZ);
SInitCDSData(ADOQueryPrint, CDS_HZ);
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + LBName + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
Panel4.Visible := false;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
procedure TfrmCKProductCPKCList.BTLPClick(Sender: TObject);
begin
if CurrentPage > 1 then
CurrentPage := CurrentPage - 1;
InitGrid();
end;
procedure TfrmCKProductCPKCList.TCBNORChange(Sender: TObject);
begin
RecordsNumber := StrToInt(TCBNOR.Text);
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductCPKCList.MPRTCodeNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmCKProductCPKCList.orderNoKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCKProductCPKCList.CPTypeKeyPress(Sender: TObject; var Key: Char);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductCPKCList.cxPageControl1Change(Sender: TObject);
begin
CurrentPage := 1;
SetStatus();
InitGrid();
end;
procedure TfrmCKProductCPKCList.ToolButton1Click(Sender: TObject);
begin
Panel4.Visible := true;
end;
procedure TfrmCKProductCPKCList.ToolButton2Click(Sender: TObject);
var
fPrintFile, fPrintFile10, FMainID, fImagePath2, LBName: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
LBName := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
ExportFtErpFile(LBName + '.rmf', ADOQueryTemp);
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('SubId').Value := Trim(CDS_Main.fieldbyname('JYID').AsString);
ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode);
ADOQueryCmd.post;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
CDS_Main.EnableControls;
if CDS_Label.Locate('LMName', trim(LBName), []) then
begin
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @Code=' + quotedstr(Trim(DCode)));
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_PRT);
SInitCDSData(ADOQueryPrint, CDS_PRT);
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label0001.xls';
if FileExists(fImagePath2) then
DeleteFile(fImagePath2);
fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label.xls';
RM1.PrepareReport;
RM1.ExportTo(RMXLSExport1, fImagePath2);
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
procedure TfrmCKProductCPKCList.ToolButton3Click(Sender: TObject);
begin
try
frmLbaelMap := TfrmLbaelMap.Create(Application);
with frmLbaelMap do
begin
FLMType := '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>뵥';
if ShowModal = 1 then
begin
end;
end;
finally
frmLbaelMap.Free;
end;
GetLabel();
end;
end.