476 lines
12 KiB
ObjectPascal
476 lines
12 KiB
ObjectPascal
|
unit U_DyeInspSet;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, StrUtils, 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, cxDropDownEdit, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters,
|
|||
|
cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
|
|||
|
dxBarBuiltInMenu, U_BaseList, cxContainer, dxCore, cxDateUtils, cxImage,
|
|||
|
cxDBEdit, IdExplicitTLSClientServerBase, RM_Preview, cxPC, U_BaseHelp,
|
|||
|
System.ImageList, Vcl.ImgList, RTComboBox, RM_BarCode, RM_e_Xls;
|
|||
|
|
|||
|
type
|
|||
|
TfrmDyeInspSet = class(TfrmBaseHelp)
|
|||
|
ToolBar1: TToolBar;
|
|||
|
TBClose: TToolButton;
|
|||
|
ADOQueryTemp: TADOQuery;
|
|||
|
ADOQueryCmd: TADOQuery;
|
|||
|
ADOQueryMain: TADOQuery;
|
|||
|
ToolButton3: TToolButton;
|
|||
|
ScrollBox1: TScrollBox;
|
|||
|
Label14: TLabel;
|
|||
|
Label1: TLabel;
|
|||
|
cxPageControl1: TcxPageControl;
|
|||
|
cxTabSheet4: TcxTabSheet;
|
|||
|
cxTabSheet3: TcxTabSheet;
|
|||
|
RMPreview2: TRMPreview;
|
|||
|
RMPreview1: TRMPreview;
|
|||
|
RuleConversion: TComboBox;
|
|||
|
Label3: TLabel;
|
|||
|
Coefficient: TEdit;
|
|||
|
Label4: TLabel;
|
|||
|
ADOQueryLabel: TADOQuery;
|
|||
|
RM1: TRMGridReport;
|
|||
|
RMDB_1: TRMDBDataSet;
|
|||
|
ADO_1: TADOQuery;
|
|||
|
RM2: TRMGridReport;
|
|||
|
RMDB_2: TRMDBDataSet;
|
|||
|
cxTabSheet1: TcxTabSheet;
|
|||
|
DS_Label: TDataSource;
|
|||
|
CDS_Label: TClientDataSet;
|
|||
|
RMDB_Label: TRMDBDataSet;
|
|||
|
RMLabel: TRMGridReport;
|
|||
|
Panel1: TPanel;
|
|||
|
Panel2: TPanel;
|
|||
|
cxGridLabel: TcxGrid;
|
|||
|
TVLabel: TcxGridDBTableView;
|
|||
|
TVLabellabelId: TcxGridDBColumn;
|
|||
|
TVLabellabeltype: TcxGridDBColumn;
|
|||
|
TVLabellabelCaption: TcxGridDBColumn;
|
|||
|
TVLabellabelFile: TcxGridDBColumn;
|
|||
|
cxGridLabelLevel1: TcxGridLevel;
|
|||
|
RMPreview3: TRMPreview;
|
|||
|
Panel4: TPanel;
|
|||
|
Label9: TLabel;
|
|||
|
Label10: TLabel;
|
|||
|
LabelCaption: TEdit;
|
|||
|
LabelType: TRTComboBox;
|
|||
|
ToolBar2: TToolBar;
|
|||
|
ToolButton1: TToolButton;
|
|||
|
ToolButton2: TToolButton;
|
|||
|
Tadd: TToolButton;
|
|||
|
Tupd: TToolButton;
|
|||
|
Tdel: TToolButton;
|
|||
|
ToolButton4: TToolButton;
|
|||
|
RMBarCodeObject1: TRMBarCodeObject;
|
|||
|
RMXLSExport1: TRMXLSExport;
|
|||
|
RMDataDictionary1: TRMDataDictionary;
|
|||
|
ADO_Down: TADOQuery;
|
|||
|
TVLabelColumn1: TcxGridDBColumn;
|
|||
|
TVLabelColumn2: TcxGridDBColumn;
|
|||
|
LabVolume: TEdit;
|
|||
|
LabPackage: TEdit;
|
|||
|
Label5: TLabel;
|
|||
|
AddWet: TEdit;
|
|||
|
Label6: TLabel;
|
|||
|
Label8: TLabel;
|
|||
|
Label11: TLabel;
|
|||
|
RuleBeforeTare: TEdit;
|
|||
|
RuleLenUnit: TComboBox;
|
|||
|
RuleLaterTare: TEdit;
|
|||
|
procedure FormDestroy(Sender: TObject);
|
|||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
procedure TBCloseClick(Sender: TObject);
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure TBRafreshClick(Sender: TObject);
|
|||
|
procedure ToolButton3Click(Sender: TObject);
|
|||
|
procedure cxPageControl1Change(Sender: TObject);
|
|||
|
procedure ToolButton1Click(Sender: TObject);
|
|||
|
procedure ToolButton2Click(Sender: TObject);
|
|||
|
procedure TupdClick(Sender: TObject);
|
|||
|
procedure TdelClick(Sender: TObject);
|
|||
|
procedure TaddClick(Sender: TObject);
|
|||
|
procedure ToolButton4Click(Sender: TObject);
|
|||
|
procedure LabelTypeChange(Sender: TObject);
|
|||
|
procedure TVLabelCellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
|||
|
private
|
|||
|
{ Private declarations }
|
|||
|
procedure InitGrid();
|
|||
|
function SaveData(): Boolean;
|
|||
|
procedure InitLabel();
|
|||
|
function SaveLabel(MLabelID: string): Boolean;
|
|||
|
procedure InitLabVolume();
|
|||
|
procedure InitLabPackage();
|
|||
|
public
|
|||
|
FDataID: string;
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmDyeInspSet: TfrmDyeInspSet;
|
|||
|
|
|||
|
implementation
|
|||
|
|
|||
|
uses
|
|||
|
U_DataLink, U_RTFun, U_LabelInput;
|
|||
|
|
|||
|
{$R *.dfm}
|
|||
|
|
|||
|
function TfrmDyeInspSet.SaveLabel(MLabelID: string): Boolean;
|
|||
|
begin
|
|||
|
try
|
|||
|
ADOQueryCmd.Connection.BeginTrans;
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add('select * from Dye_Label');
|
|||
|
sql.Add('where LabelID=' + Quotedstr(MLabelID));
|
|||
|
Open;
|
|||
|
Edit;
|
|||
|
fieldByName('Editer').value := DName;
|
|||
|
FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
|
|||
|
// RMLabel.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
|
|||
|
Post;
|
|||
|
end;
|
|||
|
ADOQueryCmd.Connection.CommitTrans;
|
|||
|
result := true;
|
|||
|
except
|
|||
|
ADOQueryCmd.Connection.RollbackTrans;
|
|||
|
Result := false;
|
|||
|
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩģ<C7A9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.InitLabel();
|
|||
|
begin
|
|||
|
with ADOQueryMain do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add(' select * from Dye_Label');
|
|||
|
sql.Add(' order by labeltype,labelCaption');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SDofilter(ADOQueryMain, SGetFilters(Panel4, 1, 2));
|
|||
|
SCreateCDS(ADOQueryMain, CDS_Label);
|
|||
|
SInitCDSData(ADOQueryMain, CDS_Label);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.InitLabVolume();
|
|||
|
begin
|
|||
|
|
|||
|
with ADOQueryLabel do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add('select * from Dye_Label');
|
|||
|
sql.Add('where labelCaption=' + quotedstr(trim(LabVolume.Text)));
|
|||
|
Open;
|
|||
|
end;
|
|||
|
if ADOQueryLabel.IsEmpty then
|
|||
|
exit;
|
|||
|
with RM1 do
|
|||
|
begin
|
|||
|
LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('labelFile')));
|
|||
|
Preview := RMPreview1;
|
|||
|
ShowReport;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.LabelTypeChange(Sender: TObject);
|
|||
|
begin
|
|||
|
if ADOQueryMain.Active then
|
|||
|
begin
|
|||
|
SDofilter(ADOQueryMain, SGetFilters(Panel4, 1, 2));
|
|||
|
SCreateCDS(ADOQueryMain, CDS_Label);
|
|||
|
SInitCDSData(ADOQueryMain, CDS_Label);
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.InitLabPackage();
|
|||
|
begin
|
|||
|
with ADOQueryLabel do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add('select * from Dye_Label');
|
|||
|
sql.Add('where labelCaption=' + quotedstr(trim(LabPackage.Text)));
|
|||
|
Open;
|
|||
|
end;
|
|||
|
if ADOQueryLabel.IsEmpty then
|
|||
|
exit;
|
|||
|
with RM2 do
|
|||
|
begin
|
|||
|
LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('labelFile')));
|
|||
|
Preview := RMPreview2;
|
|||
|
ShowReport;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.InitGrid();
|
|||
|
begin
|
|||
|
|
|||
|
with ADOQueryTemp do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add(' select top 1 * from Dye_Cloth_Inspect_Rule A ');
|
|||
|
sql.Add('where EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FDataID) + ','','') X where X.RTValue=A.RuleID) ');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCSHData(ADOQueryTemp, ScrollBox1, 2);
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.FormDestroy(Sender: TObject);
|
|||
|
begin
|
|||
|
inherited;
|
|||
|
frmDyeInspSet := nil;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.cxPageControl1Change(Sender: TObject);
|
|||
|
begin
|
|||
|
case cxPageControl1.ActivePageIndex of
|
|||
|
1:
|
|||
|
begin
|
|||
|
InitLabVolume();
|
|||
|
end;
|
|||
|
2:
|
|||
|
begin
|
|||
|
InitLabPackage();
|
|||
|
end;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
begin
|
|||
|
inherited;
|
|||
|
Action := caFree;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TaddClick(Sender: TObject);
|
|||
|
begin
|
|||
|
try
|
|||
|
frmLabelInput := TfrmLabelInput.create(self);
|
|||
|
with frmLabelInput do
|
|||
|
begin
|
|||
|
FLabelId := '';
|
|||
|
if showModal = 1 then
|
|||
|
begin
|
|||
|
InitLabel();
|
|||
|
end;
|
|||
|
end;
|
|||
|
finally
|
|||
|
frmLabelInput.Free;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TBCloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
ModalResult := 1;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
inherited;
|
|||
|
with ADO_1 do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add('exec P_BS_Label_Get_Test');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
Initlabel();
|
|||
|
InitGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TBRafreshClick(Sender: TObject);
|
|||
|
begin
|
|||
|
InitGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TdelClick(Sender: TObject);
|
|||
|
begin
|
|||
|
try
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.Add('delete Dye_Label');
|
|||
|
sql.Add('where labelId=' + quotedstr(CDS_Label.fieldByName('LabelID').asString));
|
|||
|
|
|||
|
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
|
|||
|
sql.Add(' ' + quotedstr(trim(DName)));
|
|||
|
sql.Add(',getdate() ');
|
|||
|
sql.Add(',' + quotedstr(trim(self.Caption)));
|
|||
|
sql.Add(',' + quotedstr(trim('<27><>ǩɾ<C7A9><C9BE>')));
|
|||
|
sql.Add(',' + quotedstr(trim('<27><>ǩ<EFBFBD><C7A9><EFBFBD>ƣ<EFBFBD>' + trim(CDS_Label.fieldByName('labelCaption').asString))));
|
|||
|
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
|
|||
|
sql.Add(')');
|
|||
|
execSql;
|
|||
|
end;
|
|||
|
CDS_Label.Delete;
|
|||
|
except
|
|||
|
application.MessageBox('ɾ<><C9BE>ʧ<EFBFBD><CAA7>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
function TfrmDyeInspSet.SaveData(): Boolean;
|
|||
|
var
|
|||
|
MaxId, MaxSubId, FCoCode, MaxCFID: string;
|
|||
|
FStrs: TStringList;
|
|||
|
i: Integer;
|
|||
|
begin
|
|||
|
FStrs := TStringList.Create();
|
|||
|
ExtractStrings([','], [' '], PChar(FDataID), FStrs);
|
|||
|
|
|||
|
try
|
|||
|
ADOQueryCmd.Connection.BeginTrans;
|
|||
|
|
|||
|
for i := 0 to FStrs.Count - 1 do
|
|||
|
begin
|
|||
|
MaxId := FStrs[i];
|
|||
|
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add('select * from Dye_Cloth_Inspect_Rule where RuleID=''' + Trim(MaxId) + '''');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
if ADOQueryCmd.IsEmpty then
|
|||
|
begin
|
|||
|
Append;
|
|||
|
FieldByName('Filler').Value := Trim(DName);
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
Edit;
|
|||
|
FieldByName('Editer').Value := Trim(DName);
|
|||
|
FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);
|
|||
|
end;
|
|||
|
FieldByName('RuleID').Value := Trim(MaxId);
|
|||
|
RTSetsavedata(ADOQueryCmd, 'Dye_Cloth_Inspect_Rule', ScrollBox1, 2);
|
|||
|
Post;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
ADOQueryCmd.Connection.CommitTrans;
|
|||
|
FStrs.Free;
|
|||
|
Result := True;
|
|||
|
except
|
|||
|
Result := false;
|
|||
|
ADOQueryCmd.Connection.RollbackTrans;
|
|||
|
FStrs.Free;
|
|||
|
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.ToolButton1Click(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_Label.IsEmpty then
|
|||
|
exit;
|
|||
|
LabVolume.Text := trim(CDS_Label.fieldbyname('labelCaption').asstring);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.ToolButton2Click(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_Label.IsEmpty then
|
|||
|
exit;
|
|||
|
LabPackage.Text := trim(CDS_Label.fieldbyname('labelCaption').asstring);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.ToolButton3Click(Sender: TObject);
|
|||
|
begin
|
|||
|
|
|||
|
if SaveData() then
|
|||
|
begin
|
|||
|
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.ToolButton4Click(Sender: TObject);
|
|||
|
var
|
|||
|
fFileName, fPrintFile: string;
|
|||
|
MLabelID, MLabelCaption: string;
|
|||
|
begin
|
|||
|
if CDS_Label.IsEmpty then
|
|||
|
exit;
|
|||
|
MLabelID := TRIM(CDS_Label.fieldByName('LabelID').asString);
|
|||
|
MLabelCaption := TRIM(CDS_Label.fieldByName('LabelCaption').asString);
|
|||
|
ExportFtErpFile(MLabelCaption + '.rmf', ADOQueryTemp);
|
|||
|
fPrintFile := ExtractFilePath(Application.ExeName) + 'report\' + MLabelCaption + '.rmf';
|
|||
|
|
|||
|
if not FileExists(fPrintFile) then
|
|||
|
CopyFile(PChar(ExtractFilePath(Application.ExeName) + 'Report\ģ<><C4A3><EFBFBD><EFBFBD>ǩ.rmf'), PChar(fPrintFile), False);
|
|||
|
|
|||
|
with RMLabel do
|
|||
|
begin
|
|||
|
RMLabel.Clear;
|
|||
|
RMDB_Label.DataSet := nil;
|
|||
|
Dictionary.FieldAliases.Clear;
|
|||
|
Dictionary.FieldAliases['RMDB_Label'] := '<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>';
|
|||
|
RMDB_Label.DataSet := ADO_1;
|
|||
|
LoadFromFile(fPrintFile);
|
|||
|
application.ProcessMessages;
|
|||
|
DesignReport();
|
|||
|
// RMLabel.SaveToFile(fPrintFile);
|
|||
|
SaveLabel(MLabelID);
|
|||
|
ExportToFtErp(fPrintFile, ADOQueryCmd);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TupdClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_Label.IsEmpty then
|
|||
|
exit;
|
|||
|
try
|
|||
|
frmLabelInput := TfrmLabelInput.create(self);
|
|||
|
with frmLabelInput do
|
|||
|
begin
|
|||
|
fLabelId := CDS_Label.fieldByName('LabelId').AsString;
|
|||
|
if showModal = 1 then
|
|||
|
begin
|
|||
|
InitLabel();
|
|||
|
end;
|
|||
|
end;
|
|||
|
finally
|
|||
|
frmLabelInput.Free;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmDyeInspSet.TVLabelCellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
|||
|
var
|
|||
|
fPrintFile: string;
|
|||
|
begin
|
|||
|
if CDS_Label.IsEmpty then
|
|||
|
exit;
|
|||
|
ExportFtErpFile(TRIM(CDS_Label.fieldByName('LabelCaption').asString) + '.rmf', ADOQueryTemp);
|
|||
|
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + CDS_Label.fieldbyname('LabelCaption').AsString + '.rmf';
|
|||
|
if not FileExists(fPrintFile) then
|
|||
|
CopyFile(PChar(ExtractFilePath(Application.ExeName) + 'Report\ģ<><C4A3><EFBFBD><EFBFBD>ǩ.rmf'), PChar(fPrintFile), False);
|
|||
|
|
|||
|
with RMLabel do
|
|||
|
begin
|
|||
|
RMLabel.LoadFromFile(fPrintFile);
|
|||
|
Preview := RMPreview3;
|
|||
|
ShowReport;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end.
|
|||
|
|