RTFormwork/项目代码/RTBasicsV1/A01基础公司管理/U_LabelAdd.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

456 lines
12 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.