456 lines
12 KiB
ObjectPascal
456 lines
12 KiB
ObjectPascal
unit U_LabelAdd;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB,
|
||
RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, RTComboBox,
|
||
RM_Preview, RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode,
|
||
RM_DsgGridReport, RM_Dataset, cxStyles, cxCustomData, cxGraphics,
|
||
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
|
||
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
||
cxControls, cxGridCustomView, cxGrid;
|
||
|
||
type
|
||
TfrmLabelAdd = class(TForm)
|
||
Panel1: TPanel;
|
||
Label2: TLabel;
|
||
Label3: TLabel;
|
||
LabelFileName: TBtnEditA;
|
||
beizhu: TMemo;
|
||
ToolBar1: TToolBar;
|
||
Tsave: TToolButton;
|
||
Tclose: TToolButton;
|
||
ADOQueryCmd: TADOQuery;
|
||
OpenDialog1: TOpenDialog;
|
||
RMGridReport1: TRMGridReport;
|
||
Label9: TLabel;
|
||
LabelCaption: TEdit;
|
||
Label10: TLabel;
|
||
LabelType: TRTComboBox;
|
||
ADOQueryTmp: TADOQuery;
|
||
RMPreview1: TRMPreview;
|
||
RMGridReportDesigner1: TRMGridReportDesigner;
|
||
RMBarCodeObject1: TRMBarCodeObject;
|
||
RMBMPExport1: TRMBMPExport;
|
||
RMXLSExport1: TRMXLSExport;
|
||
RMDS_Main: TRMDBDataSet;
|
||
RMDataDictionary1: TRMDataDictionary;
|
||
ADOQuery1: TADOQuery;
|
||
RMGridReport2: TRMGridReport;
|
||
ADOQueryCmdSC: TADOQuery;
|
||
ADOQueryCmdFileContent: TBlobField;
|
||
ADOQueryCmdFtFileName: TStringField;
|
||
ADOQueryCmdFileEditDate: TDateTimeField;
|
||
ADOQueryCmdFileSize: TFloatField;
|
||
ADOQueryCmdFiller: TStringField;
|
||
ADOQueryCmdLastEditTime: TDateTimeField;
|
||
ADOQueryCmdLastEditer: TStringField;
|
||
ADOQueryCmdFileCreateDate: TDateTimeField;
|
||
ADOQueryCmdchildPath: TStringField;
|
||
ADOQueryCmdFileType: TStringField;
|
||
procedure TcloseClick(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure TsaveClick(Sender: TObject);
|
||
procedure LabelFileNameBtnClick(Sender: TObject);
|
||
procedure BtOpenClick(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure RMPreview1DblClick(Sender: TObject);
|
||
private
|
||
fIsChg:Boolean;
|
||
function SaveData():Boolean;
|
||
function EditData():Boolean;
|
||
procedure InitWinData();
|
||
procedure InitVarDictionary();
|
||
procedure InitDataSetDictionary();
|
||
function PostFileToData():boolean;
|
||
procedure GetFileInfo(mFile:string;var mfileSize:integer;var CreationTime:tdatetime;var WriteTime:tdatetime);
|
||
function CovFileDate(Fd:_FileTime):TDateTime;
|
||
public
|
||
fcustomNo:string;
|
||
fKeyNo:string;
|
||
fWinStatus:integer;
|
||
end;
|
||
|
||
var
|
||
frmLabelAdd: TfrmLabelAdd;
|
||
|
||
implementation
|
||
uses
|
||
U_DataLink,U_RTFun;
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmLabelAdd.TcloseClick(Sender: TObject);
|
||
begin
|
||
if fIsChg then
|
||
begin
|
||
if application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>?','<27><>ʾ<EFBFBD><CABE>Ϣ',1)=1 then
|
||
begin
|
||
Tsave.Click ;
|
||
end
|
||
else
|
||
close;
|
||
end
|
||
else
|
||
close;
|
||
end;
|
||
|
||
procedure TfrmLabelAdd.FormCreate(Sender: TObject);
|
||
begin
|
||
panel1.Align :=alClient;
|
||
fIsChg:=false;
|
||
// ClearWinData(panel1);
|
||
// InitVarDictionary();
|
||
end;
|
||
|
||
procedure TfrmLabelAdd.TsaveClick(Sender: TObject);
|
||
begin
|
||
if trim(labelCaption.Text)='' then
|
||
begin
|
||
application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ');
|
||
labelCaption.SetFocus;
|
||
exit;
|
||
end;
|
||
if trim(LabelFileName.Text)='' then
|
||
begin
|
||
application.MessageBox('<27><>ǩ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ǩ<EFBFBD><C7A9>','<27><>ʾ');
|
||
LabelFileName.SetFocus;
|
||
exit;
|
||
end;
|
||
PostFileToData();
|
||
if fWinStatus=0 then
|
||
begin
|
||
if SaveData() then
|
||
begin
|
||
ModalResult:=1;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
if EditData() then
|
||
begin
|
||
ModalResult:=1;
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
function TfrmLabelAdd.PostFileToData():boolean;
|
||
var
|
||
mFileName,fFileName,fpathFileName:string;
|
||
Stream : TMemoryStream;
|
||
mfileSize:integer;
|
||
mCreationTime:TdateTime;
|
||
mWriteTime:TdateTime;
|
||
begin
|
||
result:=false;
|
||
fFileName:=Trim(LabelCaption.Text);
|
||
fpathFileName:=Trim(LabelFileName.Text);
|
||
try
|
||
ADOQueryCmdSC.Connection.BeginTrans ;
|
||
try
|
||
with ADOQueryCmdSC do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add('delete from RT_FileUpdate');
|
||
sql.Add('where FileName='+quotedStr(trim(fFileName)));
|
||
execsql;
|
||
end;
|
||
with ADOQueryCmdSC do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add('select * from RT_FileUpdate');
|
||
sql.Add('where FileName='+quotedStr(trim(fFileName)));
|
||
Open;
|
||
//////////////////////////
|
||
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
||
GetFileInfo(Trim(fpathFileName),mfileSize,mCreationTime,mWriteTime);
|
||
|
||
if RecordCount<=0 then
|
||
begin
|
||
Append;
|
||
fieldByName('FileName').AsString := trim(fFileName);
|
||
end
|
||
else
|
||
begin
|
||
edit;
|
||
end;
|
||
|
||
fieldByName('FileEditDate').Value :=mWriteTime;
|
||
fieldByName('FileCreateDate').Value :=mCreationTime;
|
||
fieldByName('FileSize').Value :=mfileSize;
|
||
fieldByName('Filler').Value :=Dname;
|
||
fieldByName('LastEditer').Value :=Dname;
|
||
fieldByName('LastEditTime').Value :=SGetServerDateTime(ADOQueryTmp);
|
||
if pos('.rmf',fFileName)>0 then
|
||
begin
|
||
fieldByName('FilePath').Value :='report';
|
||
fieldByName('FileType').Value :='<27><><EFBFBD><EFBFBD>';
|
||
end
|
||
else if pos('.dll',fFileName)>0 then
|
||
begin
|
||
fieldByName('FilePath').Value :='';
|
||
fieldByName('FileType').Value :='һ<><D2BB>';
|
||
end
|
||
else
|
||
begin
|
||
fieldByName('FilePath').Value :='';
|
||
fieldByName('FileType').Value :='<27><><EFBFBD><EFBFBD>';
|
||
end;
|
||
//<2F><>OLE<4C><45><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
||
ADOQueryCmdFileContent.LoadFromFile(fpathFileName);
|
||
//ADOQueryCmdFileContent.LoadFromStream(Stream);
|
||
|
||
post;
|
||
end;
|
||
finally
|
||
end;
|
||
result:=true;
|
||
ADOQueryCmdSC.Connection.CommitTrans ;
|
||
except
|
||
ADOQueryCmdSC.Connection.RollbackTrans ;
|
||
Result:=False;
|
||
application.MessageBox(pchar('<27>ύ<EFBFBD>ļ<EFBFBD>['+trim(fFileName)+']ʧ<><CAA7>!'),'<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
|
||
end;
|
||
|
||
end;
|
||
procedure TfrmLabelAdd.GetFileInfo(mFile:string;var mfileSize:integer;var CreationTime:tdatetime;var WriteTime:tdatetime);
|
||
var
|
||
vSearchRec: TSearchRec;
|
||
begin
|
||
FindFirst(mFile,faAnyFile,vSearchRec);
|
||
mfileSize:=vSearchRec.Size;
|
||
CreationTime:=CovFileDate(vSearchRec.FindData.ftCreationTime);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||
//vSearchRec.FindData.ftLastAccessTime//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||
WriteTime:=CovFileDate(vSearchRec.FindData.ftLastWriteTime);//<2F><EFBFBD>ʱ<EFBFBD><CAB1>
|
||
FindClose(vSearchRec);
|
||
end;
|
||
function TfrmLabelAdd.CovFileDate(Fd:_FileTime):TDateTime;
|
||
var
|
||
Tct:_SystemTime;
|
||
Temp:_FileTime;
|
||
begin
|
||
FileTimeToLocalFileTime(Fd,Temp);
|
||
FileTimeToSystemTime(Temp,Tct);
|
||
CovFileDate:=SystemTimeToDateTime(Tct);
|
||
end;
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/////////////////////////////////////////////////////////////////////
|
||
function TfrmLabelAdd.SaveData():Boolean;
|
||
begin
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select * from P_Label');
|
||
sql.Add('where 1<>1');
|
||
Open;
|
||
|
||
Append;
|
||
fieldByName('filler').value:=DName;
|
||
fieldByName('filltime').value:=DServerDate;
|
||
fieldByName('beizhu').value:= trim(beizhu.text);
|
||
fieldByName('LabelCaption').value:=trim(LabelCaption.text);
|
||
fieldByName('LabelType').value:=trim(LabelType.text);
|
||
fieldByName('LabelFileName').value:= trim(LabelFileName.text);
|
||
//TBlobField(FieldByName('LabelFile')).LoadFromStream(fStream);
|
||
RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
|
||
Post;
|
||
end;
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select * from P_Label where LabelCaption='''+Trim(LabelCaption.text)+'''');
|
||
Open;
|
||
end;
|
||
if ADOQueryTmp.RecordCount>1 then
|
||
begin
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Result:=False;
|
||
Application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>!','<27><>ʾ',0);
|
||
Exit;
|
||
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;
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/////////////////////////////////////////////////////////////////////
|
||
function TfrmLabelAdd.EditData():Boolean;
|
||
begin
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select * from P_Label');
|
||
sql.Add('where labelId='+fkeyNo);
|
||
Open;
|
||
Edit;
|
||
fieldByName('LabelCaption').value:=trim(LabelCaption.text);
|
||
fieldByName('LabelType').value:=trim(LabelType.text);
|
||
fieldByName('LabelFileName').value:= trim(LabelFileName.text);
|
||
RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
|
||
fieldByName('Editer').value:=DName;
|
||
fieldByName('EditTime').value:=DServerDate;
|
||
fieldByName('beizhu').value:= trim(beizhu.text);
|
||
Post;
|
||
end;
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select * from P_Label where LabelCaption='''+Trim(LabelCaption.text)+'''');
|
||
Open;
|
||
end;
|
||
if ADOQueryTmp.RecordCount>1 then
|
||
begin
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Result:=False;
|
||
Application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>!','<27><>ʾ',0);
|
||
Exit;
|
||
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 TfrmLabelAdd.LabelFileNameBtnClick(Sender: TObject);
|
||
begin
|
||
if OpenDialog1.Execute() then
|
||
begin
|
||
LabelFileName.Text:=OpenDialog1.FileName;
|
||
LabelCaption.Text:=Trim(ExtractFileName(OpenDialog1.FileName));
|
||
RMGridReport1.LoadFromFile(LabelFileName.Text);
|
||
RMGridReport1.Preview :=RMPreview1;
|
||
RMGridReport1.ShowReport ;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmLabelAdd.BtOpenClick(Sender: TObject);
|
||
begin
|
||
|
||
|
||
end;
|
||
////////////////////////////////////////////////////////////
|
||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
////////////////////////////////////////////////////////////
|
||
procedure TfrmLabelAdd.InitWinData();
|
||
begin
|
||
try
|
||
with ADOQueryTmp do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add('select A.*');
|
||
// sql.Add('customNoName=isnull((select customName from BC_customer where customNO=A.customNo),A.customNo)');
|
||
sql.Add('from P_Label A');
|
||
sql.Add('WHERE LabelId='+fkeyNo);
|
||
Open;
|
||
if isEmpty then
|
||
begin
|
||
close;
|
||
exit;
|
||
end;
|
||
|
||
SSetWinData(ADOQueryTmp,panel1);
|
||
RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
|
||
RMGridReport2.FileName:=trim(fieldByName('labelFileName').AsString);
|
||
RMGridReport2.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
|
||
RMGridReport1.Preview :=RMPreview1;
|
||
//RMGridReport1.PrepareReport;
|
||
RMGridReport1.ShowReport ;
|
||
end;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmLabelAdd.FormShow(Sender: TObject);
|
||
begin
|
||
if fWinStatus>0 then
|
||
InitWinData();
|
||
end;
|
||
|
||
procedure TfrmLabelAdd.RMPreview1DblClick(Sender: TObject);
|
||
begin
|
||
//btOpen.Click ;
|
||
end;
|
||
////////////////////////////////////////////////////////////
|
||
//
|
||
////////////////////////////////////////////////////////////
|
||
procedure TfrmLabelAdd.InitVarDictionary();
|
||
var
|
||
i:integer;
|
||
begin
|
||
{ try
|
||
with RMGridReport2 do
|
||
begin
|
||
Dictionary.Variables.Clear ;
|
||
Dictionary.Variables.AddCategory('<27>ͻ<EFBFBD><CDBB><EFBFBD>λ<EFBFBD><CEBB>Ϣ');
|
||
with ADOQueryTmp do
|
||
begin
|
||
close;
|
||
sql.clear;
|
||
sql.Add('exec P_Label_CustPrintData');
|
||
sql.Add(quotedStr(fCustomNo));
|
||
Open;
|
||
for i:=0 to FieldCount-1 do
|
||
begin
|
||
|
||
Dictionary.Variables.Add(trim(fields[i].FieldName)
|
||
,'');
|
||
Dictionary.Variables.AsString[trim(fields[i].FieldName)]:=trim(fields[i].AsString);
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
|
||
end; }
|
||
end;
|
||
/////////////////////////////////////////////////
|
||
//
|
||
/////////////////////////////////////////////////
|
||
procedure TfrmLabelAdd.InitDataSetDictionary();
|
||
begin
|
||
{ with ADOQuery1 do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add('exec P_Label_PrintSet');
|
||
sql.Add(quotedStr(''));
|
||
//sql.Add(','+quotedStr(''));
|
||
//sql.Add(','+quotedStr(''));
|
||
//sql.Add(','+quotedStr(''));
|
||
//sql.Add(','+quotedStr(''));
|
||
OPen;
|
||
end;
|
||
with RMGridReport2 do
|
||
begin
|
||
Dictionary.FieldAliases.Clear;
|
||
Dictionary.FieldAliases['RMDS_Main']:= '<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>';
|
||
Dictionary.FieldAliases['RMDS_Main."barcode"']:='<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>';
|
||
end; }
|
||
end;
|
||
|
||
end.
|