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.
|
||
|