D10gmBitao/T03贸易布匹检验/U_TradePACKETPrint.pas

407 lines
11 KiB
ObjectPascal
Raw Normal View History

2025-04-11 10:54:54 +08:00
unit U_TradePACKETPrint;
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, cxDBLookupComboBox, ComObj, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
dxBarBuiltInMenu, dxScrollbarAnnotations;
type
TfrmTradePACKETPrint = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
GPM_1: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
v2Column6: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column10: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Panel1: TPanel;
Label1: TLabel;
edtScan: TEdit;
btnFind: TToolButton;
ToolButton2: TToolButton;
Label2: TLabel;
ComboBox1: TComboBox;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
RMDB_1: TRMDBDataSet;
RM1: TRMGridReport;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Button3: TButton;
CDS_Print: TClientDataSet;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxgrdbclmn1: TcxGridDBColumn;
cxgrdbclmn2: TcxGridDBColumn;
cxgrdbclmn3: TcxGridDBColumn;
cxgrdbclmn4: TcxGridDBColumn;
cxgrdbclmn5: TcxGridDBColumn;
cxgrdbclmn6: TcxGridDBColumn;
cxgrdbclmn7: TcxGridDBColumn;
cxgrdbclmn8: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
btn1: TButton;
DS_2: TDataSource;
CDS_2: TClientDataSet;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv2Column1: TcxGridDBColumn;
Tv2Column2: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure btnFindClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure edtScanKeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
fFlileFlag: string;
{ Private declarations }
procedure InitGrid();
public
FAuthority, FCIID: string;
end;
var
frmTradePACKETPrint: TfrmTradePACKETPrint;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_AttachmentUpload;
{$R *.dfm}
procedure TfrmTradePACKETPrint.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('select top 500 * from Trade_Cloth_Inspect A INNER JOIN Trade_LabelPrint B on A.CIID=B.CIID');
sql.Add('where B.Filler =''' + trim(DName) + '''');
sql.Add('order by B.Filltime desc');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('SELECT * FROM Trade_Cloth_Inspect a WHERE a.Filltime > ''2024-12-16'' and NOT EXISTS(SELECT DISTINCT Ciid FROM Trade_LabelPrint b WHERE a.CIID = b.CIID)');
sql.Add('order by Filltime desc');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_2);
SInitCDSData(ADOQueryMain, CDS_2);
finally
ADOQueryMain.EnableControls;
end;
CDS_1.First;
CDS_2.first;
end;
procedure TfrmTradePACKETPrint.FormDestroy(Sender: TObject);
begin
inherited;
frmTradePACKETPrint := nil;
end;
procedure TfrmTradePACKETPrint.Button3Click(Sender: TObject);
var
fPrintFile, FLabVolume: string;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' EXEC P_Trade_Insp_Prt_Lab ');
SQL.Add(' @CIID=''' + Trim(CDS_1.fieldbyname('CIID').AsString) + '''');
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_Print);
SInitCDSData(ADOQueryPrint, CDS_Print);
if ADOQueryPrint.IsEmpty then
begin
application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if Trim(ADOQueryPrint.fieldbyname('Grade').AsString) = '<27><>Ʒ' then
2025-04-15 20:16:06 +08:00
FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabPackage').AsString)
2025-04-11 10:54:54 +08:00
else
FLabVolume := '<27><>Ʒ<EFBFBD><C6B7>ǩ';
ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
Rm1.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
RM1.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
edtScan.SetFocus;
InitGrid();
end;
procedure TfrmTradePACKETPrint.edtScanKeyPress(Sender: TObject; var Key: Char);
var
fPrintFile, FLabVolume, FCIID: string;
begin
if Key = #13 then
begin
if trim(edtScan.Text) = '' then
exit;
FCIID := trim(edtScan.Text);
edtScan.text := '';
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from Trade_Cloth_Inspect A');
SQL.Add(' where CIID=''' + trim(FCIID) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into Trade_LabelPrint(CIID,Filltime,Filler) values( ');
sql.Add(quotedstr(Trim(FCIID)));
sql.Add(',getdate() ');
sql.Add(', ' + quotedstr(trim(DName)));
sql.Add(')');
ExecSQL;
end;
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' EXEC P_Trade_Insp_Prt_Lab ');
SQL.Add(' @CIID=''' + Trim(FCIID) + '''');
// ShowMessage(sql.text);
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_Print);
SInitCDSData(ADOQueryPrint, CDS_Print);
if ADOQueryPrint.IsEmpty then
begin
application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
// if Trim(ADOQueryPrint.fieldbyname('Grade').AsString) = '<27><>Ʒ' then
FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabPackage').AsString);
if FLabVolume = '' then
begin
FLabVolume := <>ϰ<EFBFBD><CFB0><EFBFBD>ǩ';
end;
ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
Rm1.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
RM1.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
InitGrid();
end;
end;
procedure TfrmTradePACKETPrint.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTradePACKETPrint.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTradePACKETPrint.TBDelClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
if Trim(CDS_1.fieldbyname('COID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update BS_Company set Valid=''N'' where COID=''' + Trim(CDS_1.fieldbyname('COID').AsString) + '''');
ExecSQL;
end;
end;
CDS_1.Delete;
end;
procedure TfrmTradePACKETPrint.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(self.Caption), Tv1, '<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
edtScan.SetFocus;
InitGrid();
end;
procedure TfrmTradePACKETPrint.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmTradePACKETPrint.ToolButton5Click(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
try
frmAttachmentUpload := TfrmAttachmentUpload.Create(Application);
with frmAttachmentUpload do
begin
// FEditAuthority := True;
if (Trim(FAuthority) = <><C2BC>') or (Trim(FAuthority) = '<27><><EFBFBD><EFBFBD>') then
FEditAuthority := True;
fkeyNO := Trim(Self.CDS_1.fieldbyname('Coid').AsString);
fType := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
end;
end;
finally
frmAttachmentUpload.Free;
end;
end;
procedure TfrmTradePACKETPrint.btn1Click(Sender: TObject);
var
fPrintFile, FLabVolume: string;
begin
if CDS_2.IsEmpty then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1>Ҫ<EFBFBD><D2AA>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into Trade_LabelPrint(CIID,Filltime,Filler) values(''' + Trim(CDS_2.FieldByName('CIID').AsString) + '''');
sql.Add(',getdate() ');
sql.Add(', ' + quotedstr(trim(DName)));
sql.Add(')');
ExecSQL;
end;
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' EXEC P_Trade_Insp_Prt_Lab ');
SQL.Add(' @CIID=''' + Trim(CDS_2.fieldbyname('CIID').AsString) + '''');
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_Print);
SInitCDSData(ADOQueryPrint, CDS_Print);
if ADOQueryPrint.IsEmpty then
begin
application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
// if Trim(ADOQueryPrint.fieldbyname('Grade').AsString) = '<27><>Ʒ' then
// FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString)
// else
// FLabVolume := '<27><>Ʒ<EFBFBD><C6B7>ǩ';
FLabVolume := <>ϰ<EFBFBD><CFB0><EFBFBD>ǩ';
ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
Rm1.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
RM1.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
edtScan.SetFocus;
InitGrid();
end;
procedure TfrmTradePACKETPrint.btnFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
end;
end;
procedure TfrmTradePACKETPrint.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(trim(self.caption), Tv1, '<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
end;
end.