144 lines
4.2 KiB
ObjectPascal
144 lines
4.2 KiB
ObjectPascal
unit U_LabelPrint;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, DB, ADODB, RM_e_Graphic, RM_e_bmp, RM_BarCode, RM_System,
|
|
RM_Common, RM_Class, RM_GridReport, RM_e_Xls, RM_Dataset, StdCtrls,
|
|
ExtCtrls;
|
|
|
|
type
|
|
TfrmLabelPrint = class(TForm)
|
|
ADOQueryMain: TADOQuery;
|
|
ADOConnection1: TADOConnection;
|
|
RMXLSExport1: TRMXLSExport;
|
|
RMGridReport1: TRMGridReport;
|
|
RMBarCodeObject1: TRMBarCodeObject;
|
|
RMBMPExport1: TRMBMPExport;
|
|
RMDS_Main: TRMDBDataSet;
|
|
ADOQueryTmp: TADOQuery;
|
|
Button1: TButton;
|
|
ADOQueryCust: TADOQuery;
|
|
Panel1: TPanel;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
private
|
|
procedure InitDataSetDictionary();
|
|
// procedure InitVarDictionary();
|
|
procedure OpenLabel();
|
|
public
|
|
fLabelId:string; //标签记录Id;
|
|
fKeyNo:string; //
|
|
fCustomNo:string; //客户编号
|
|
fLabelCopys:integer; //打印份数
|
|
fIsPreviewPrint:Boolean;
|
|
FFCDFlag:String;
|
|
procedure DoPrintLabel();
|
|
end;
|
|
|
|
var
|
|
frmLabelPrint: TfrmLabelPrint;
|
|
|
|
implementation
|
|
uses
|
|
U_DataLink;
|
|
{$R *.dfm}
|
|
////////////////////////////////////////////////////////////////////
|
|
//函数:打印标签加载
|
|
////////////////////////////////////////////////////////////////////
|
|
procedure TfrmLabelPrint.DoPrintLabel();
|
|
begin
|
|
InitDataSetDictionary();
|
|
OpenLabel();
|
|
end;
|
|
|
|
procedure TfrmLabelPrint.FormCreate(Sender: TObject);
|
|
begin
|
|
try
|
|
with ADOConnection1 do
|
|
begin
|
|
Connected:=false;
|
|
ConnectionString:=DConString;
|
|
Connected:=true;
|
|
end;
|
|
Except
|
|
application.MessageBox('数据库连接失败!','错误',mb_Ok+ MB_ICONERROR);
|
|
end;
|
|
end;
|
|
/////////////////////////////////////////////////
|
|
//函数功能:加载标签数据
|
|
/////////////////////////////////////////////////
|
|
procedure TfrmLabelPrint.InitDataSetDictionary();
|
|
begin
|
|
try
|
|
with ADOQueryMain do
|
|
begin
|
|
close;
|
|
sql.Clear ;
|
|
sql.Add('select RTrim(AA.XJID) XJID,RTrim(Cast(AA.XJSJKZ as varchar(20))) XJSJKZ,RTrim(cast(Cast(AA.XJFK*10 as int) as varchar(20))) XJFK,RTrim(B.OrderNo)+'''+Trim(FFCDFlag)+''' OrderNo');
|
|
sql.Add(',Rtrim(C.SWFBColor) SWFBColor, YLPB=dbo.F_Get_WFBOrder_SubStr(C.SubId,''YLPBSZ'')');
|
|
sql.Add(',Rtrim(Cast(AA.XJlen as varchar(20))) XJlen,Rtrim(Cast(AA.XJMaoZ as varchar(20))) XJMaoZ');
|
|
sql.Add(',Rtrim(Cast(AA.XJFree as varchar(20))) XJFree,Rtrim(Cast( Cast(AA.XJlen*AA.XJFK/100 as int) as varchar(20))) XJPFM');
|
|
sql.Add(',Rtrim(Cast(Cast(C.SWFBKZ as int) as varchar(20))) SWFBKZ');
|
|
sql.Add(',Rtrim(Cast(Cast(AA.XJJt as int) as varchar(20))) XJJt');
|
|
sql.Add(',RTrim(B.LbEngName) LbEngName');
|
|
sql.Add(',RTrim(C.SWFBCodeName) SWFBCodeName from WFB_XJJY AA ');
|
|
sql.add(' inner join WFB_MJJY A on AA.MJID=A.MJID') ;
|
|
sql.add(' inner join WFBOrder_Main B on A.MainId=B.MainId');
|
|
sql.Add(' inner join WFBOrder_Sub C on A.SubId=C.SubId');
|
|
sql.Add(' where AA.XJID='''+Trim(fKeyNo)+'''');
|
|
OPen;
|
|
end;
|
|
with RMGridReport1 do
|
|
begin
|
|
Dictionary.FieldAliases.Clear;
|
|
Dictionary.FieldAliases['RMDS_Main']:= '标签数据';
|
|
// Dictionary.FieldAliases['RMDS_Main."BarCodeNo"']:='标签条码';
|
|
end;
|
|
except
|
|
application.MessageBox('加载标签数据时发生错误!','警告信息',0);
|
|
end;
|
|
end;
|
|
//////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////
|
|
procedure TfrmLabelPrint.OpenLabel();
|
|
begin
|
|
with ADOQueryTmp do
|
|
begin
|
|
close;
|
|
sql.Clear ;
|
|
sql.Add('select labelfile from P_Label A');
|
|
sql.Add('where labelId='''+fLabelId+'''');
|
|
Open;
|
|
if fieldbyname('labelFile').IsNull then
|
|
begin
|
|
application.MessageBox('未找到要打印的标签信息记录!','提示信息',0);
|
|
self.Close ;
|
|
exit;
|
|
end;
|
|
RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
|
|
// InitVarDictionary();
|
|
//fIsPreviewPrint:=true;
|
|
if fIsPreviewPrint then
|
|
RMGridReport1.ShowReport
|
|
else
|
|
RMGridReport1.PrintReport ;
|
|
close;
|
|
end;
|
|
|
|
end;
|
|
procedure TfrmLabelPrint.Button1Click(Sender: TObject);
|
|
begin
|
|
DoPrintLabel();
|
|
end;
|
|
|
|
procedure TfrmLabelPrint.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
Action:=caFree;
|
|
end;
|
|
|
|
end.
|