添加二维码
This commit is contained in:
parent
45d496c3ad
commit
a44aa2e3e5
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -4,6 +4,7 @@
|
||||||
**/image
|
**/image
|
||||||
**/doc
|
**/doc
|
||||||
**/wav
|
**/wav
|
||||||
|
**/QrCode
|
||||||
**/__history
|
**/__history
|
||||||
**/__recovery
|
**/__recovery
|
||||||
*.dll
|
*.dll
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
object frmClientPrintRmf: TfrmClientPrintRmf
|
object frmClientPrintRmf: TfrmClientPrintRmf
|
||||||
Left = 874
|
Left = 874
|
||||||
Top = 483
|
Top = 483
|
||||||
Width = 419
|
Width = 754
|
||||||
Height = 249
|
Height = 704
|
||||||
Caption = #25253#34920#25171#21360
|
Caption = #25253#34920#25171#21360
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
|
@ -22,20 +22,20 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
||||||
Connection = ADOConnection1
|
Connection = ADOConnection1
|
||||||
LockType = ltReadOnly
|
LockType = ltReadOnly
|
||||||
Parameters = <>
|
Parameters = <>
|
||||||
Left = 265
|
Left = 273
|
||||||
Top = 65503
|
Top = 12
|
||||||
end
|
end
|
||||||
object ADOConnection1: TADOConnection
|
object ADOConnection1: TADOConnection
|
||||||
LoginPrompt = False
|
LoginPrompt = False
|
||||||
Left = 19
|
Left = 27
|
||||||
Top = 65503
|
Top = 12
|
||||||
end
|
end
|
||||||
object ImageList1: TImageList
|
object ImageList1: TImageList
|
||||||
DrawingStyle = dsTransparent
|
DrawingStyle = dsTransparent
|
||||||
Height = 32
|
Height = 32
|
||||||
Width = 32
|
Width = 32
|
||||||
Left = 101
|
Left = 109
|
||||||
Top = 91
|
Top = 136
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010119002400040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C010119002400040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
000000000000360000002800000080000000E0000000010020000000000000C0
|
000000000000360000002800000080000000E0000000010020000000000000C0
|
||||||
|
|
@ -3742,9 +3742,9 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
||||||
end
|
end
|
||||||
object RMDB_1: TRMDBDataSet
|
object RMDB_1: TRMDBDataSet
|
||||||
Visible = True
|
Visible = True
|
||||||
DataSet = ADO_1
|
DataSet = CDS_1
|
||||||
Left = 265
|
Left = 273
|
||||||
Top = 91
|
Top = 136
|
||||||
end
|
end
|
||||||
object RM1: TRMGridReport
|
object RM1: TRMGridReport
|
||||||
ThreadPrepareReport = True
|
ThreadPrepareReport = True
|
||||||
|
|
@ -3763,48 +3763,34 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
||||||
CompressThread = False
|
CompressThread = False
|
||||||
LaterBuildEvents = True
|
LaterBuildEvents = True
|
||||||
OnlyOwnerDataSet = False
|
OnlyOwnerDataSet = False
|
||||||
Left = 265
|
Left = 273
|
||||||
Top = 153
|
Top = 198
|
||||||
ReportData = {}
|
ReportData = {}
|
||||||
end
|
end
|
||||||
object RMDB_2: TRMDBDataSet
|
object RMDB_2: TRMDBDataSet
|
||||||
Visible = True
|
Visible = True
|
||||||
DataSet = ADO_2
|
DataSet = CDS_2
|
||||||
Left = 347
|
Left = 355
|
||||||
Top = 91
|
Top = 136
|
||||||
end
|
end
|
||||||
object CDS_Label: TClientDataSet
|
object CDS_Label: TClientDataSet
|
||||||
Aggregates = <>
|
Aggregates = <>
|
||||||
Params = <>
|
Params = <>
|
||||||
Left = 19
|
Left = 27
|
||||||
Top = 91
|
Top = 136
|
||||||
end
|
end
|
||||||
object ADO_1: TADOQuery
|
object ADO_Prt: TADOQuery
|
||||||
Connection = ADOConnection1
|
Connection = ADOConnection1
|
||||||
LockType = ltReadOnly
|
LockType = ltReadOnly
|
||||||
Parameters = <>
|
Parameters = <>
|
||||||
Left = 347
|
Left = 355
|
||||||
Top = 65503
|
Top = 12
|
||||||
end
|
|
||||||
object ADO_2: TADOQuery
|
|
||||||
Connection = ADOConnection1
|
|
||||||
LockType = ltReadOnly
|
|
||||||
Parameters = <>
|
|
||||||
Left = 19
|
|
||||||
Top = 29
|
|
||||||
end
|
end
|
||||||
object RMDB_3: TRMDBDataSet
|
object RMDB_3: TRMDBDataSet
|
||||||
Visible = True
|
Visible = True
|
||||||
DataSet = ADO_3
|
DataSet = CDS_3
|
||||||
Left = 19
|
Left = 27
|
||||||
Top = 153
|
Top = 198
|
||||||
end
|
|
||||||
object ADO_3: TADOQuery
|
|
||||||
Connection = ADOConnection1
|
|
||||||
LockType = ltReadOnly
|
|
||||||
Parameters = <>
|
|
||||||
Left = 101
|
|
||||||
Top = 29
|
|
||||||
end
|
end
|
||||||
object RMXLSExport1: TRMXLSExport
|
object RMXLSExport1: TRMXLSExport
|
||||||
ShowAfterExport = True
|
ShowAfterExport = True
|
||||||
|
|
@ -3817,61 +3803,78 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
||||||
ScaleX = 1.000000000000000000
|
ScaleX = 1.000000000000000000
|
||||||
ScaleY = 1.000000000000000000
|
ScaleY = 1.000000000000000000
|
||||||
CompressFile = False
|
CompressFile = False
|
||||||
Left = 19
|
Left = 27
|
||||||
Top = 215
|
Top = 260
|
||||||
end
|
end
|
||||||
object RMJPEGExport1: TRMJPEGExport
|
object RMJPEGExport1: TRMJPEGExport
|
||||||
ScaleX = 1.000000000000000000
|
ScaleX = 1.000000000000000000
|
||||||
ScaleY = 1.000000000000000000
|
ScaleY = 1.000000000000000000
|
||||||
Left = 347
|
Left = 355
|
||||||
Top = 153
|
Top = 198
|
||||||
end
|
end
|
||||||
object RMBarCodeObject1: TRMBarCodeObject
|
object RMBarCodeObject1: TRMBarCodeObject
|
||||||
Left = 183
|
Left = 191
|
||||||
Top = 91
|
Top = 136
|
||||||
end
|
end
|
||||||
object ADOQueryCmd: TADOQuery
|
object ADOQueryCmd: TADOQuery
|
||||||
Connection = ADOConnection1
|
Connection = ADOConnection1
|
||||||
Parameters = <>
|
Parameters = <>
|
||||||
Left = 101
|
Left = 109
|
||||||
Top = 65503
|
Top = 12
|
||||||
end
|
end
|
||||||
object ADO_While: TADOQuery
|
object ADO_While: TADOQuery
|
||||||
Connection = ADOConnection1
|
Connection = ADOConnection1
|
||||||
LockType = ltReadOnly
|
LockType = ltReadOnly
|
||||||
Parameters = <>
|
Parameters = <>
|
||||||
Left = 347
|
Left = 355
|
||||||
Top = 29
|
Top = 74
|
||||||
end
|
|
||||||
object ADO_4: TADOQuery
|
|
||||||
Connection = ADOConnection1
|
|
||||||
LockType = ltReadOnly
|
|
||||||
Parameters = <>
|
|
||||||
Left = 183
|
|
||||||
Top = 29
|
|
||||||
end
|
end
|
||||||
object RMDB_4: TRMDBDataSet
|
object RMDB_4: TRMDBDataSet
|
||||||
Visible = True
|
Visible = True
|
||||||
DataSet = ADO_4
|
DataSet = CDS_4
|
||||||
Left = 101
|
Left = 109
|
||||||
Top = 153
|
Top = 198
|
||||||
end
|
|
||||||
object ADO_5: TADOQuery
|
|
||||||
Connection = ADOConnection1
|
|
||||||
LockType = ltReadOnly
|
|
||||||
Parameters = <>
|
|
||||||
Left = 265
|
|
||||||
Top = 29
|
|
||||||
end
|
end
|
||||||
object RMDB_5: TRMDBDataSet
|
object RMDB_5: TRMDBDataSet
|
||||||
Visible = True
|
Visible = True
|
||||||
DataSet = ADO_5
|
DataSet = CDS_5
|
||||||
Left = 183
|
Left = 191
|
||||||
Top = 153
|
Top = 198
|
||||||
end
|
end
|
||||||
object ADOQueryReport: TADOQuery
|
object ADOQueryReport: TADOQuery
|
||||||
|
Connection = ADOConnection1
|
||||||
Parameters = <>
|
Parameters = <>
|
||||||
Left = 183
|
Left = 191
|
||||||
Top = 65503
|
Top = 12
|
||||||
|
end
|
||||||
|
object CDS_1: TClientDataSet
|
||||||
|
Aggregates = <>
|
||||||
|
Params = <>
|
||||||
|
Left = 123
|
||||||
|
Top = 288
|
||||||
|
end
|
||||||
|
object CDS_2: TClientDataSet
|
||||||
|
Aggregates = <>
|
||||||
|
Params = <>
|
||||||
|
Left = 259
|
||||||
|
Top = 304
|
||||||
|
end
|
||||||
|
object CDS_3: TClientDataSet
|
||||||
|
Aggregates = <>
|
||||||
|
Params = <>
|
||||||
|
Left = 203
|
||||||
|
Top = 360
|
||||||
|
end
|
||||||
|
object CDS_4: TClientDataSet
|
||||||
|
Aggregates = <>
|
||||||
|
Params = <>
|
||||||
|
Left = 331
|
||||||
|
Top = 376
|
||||||
|
end
|
||||||
|
object CDS_5: TClientDataSet
|
||||||
|
Aggregates = <>
|
||||||
|
Params = <>
|
||||||
|
Left = 411
|
||||||
|
Top = 376
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -23,20 +23,21 @@ type
|
||||||
RM1: TRMGridReport;
|
RM1: TRMGridReport;
|
||||||
RMDB_2: TRMDBDataSet;
|
RMDB_2: TRMDBDataSet;
|
||||||
CDS_Label: TClientDataSet;
|
CDS_Label: TClientDataSet;
|
||||||
ADO_1: TADOQuery;
|
ADO_Prt: TADOQuery;
|
||||||
ADO_2: TADOQuery;
|
|
||||||
RMDB_3: TRMDBDataSet;
|
RMDB_3: TRMDBDataSet;
|
||||||
ADO_3: TADOQuery;
|
|
||||||
RMXLSExport1: TRMXLSExport;
|
RMXLSExport1: TRMXLSExport;
|
||||||
RMJPEGExport1: TRMJPEGExport;
|
RMJPEGExport1: TRMJPEGExport;
|
||||||
RMBarCodeObject1: TRMBarCodeObject;
|
RMBarCodeObject1: TRMBarCodeObject;
|
||||||
ADOQueryCmd: TADOQuery;
|
ADOQueryCmd: TADOQuery;
|
||||||
ADO_While: TADOQuery;
|
ADO_While: TADOQuery;
|
||||||
ADO_4: TADOQuery;
|
|
||||||
RMDB_4: TRMDBDataSet;
|
RMDB_4: TRMDBDataSet;
|
||||||
ADO_5: TADOQuery;
|
|
||||||
RMDB_5: TRMDBDataSet;
|
RMDB_5: TRMDBDataSet;
|
||||||
ADOQueryReport: TADOQuery;
|
ADOQueryReport: TADOQuery;
|
||||||
|
CDS_1: TClientDataSet;
|
||||||
|
CDS_2: TClientDataSet;
|
||||||
|
CDS_3: TClientDataSet;
|
||||||
|
CDS_4: TClientDataSet;
|
||||||
|
CDS_5: TClientDataSet;
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
|
|
@ -44,25 +45,33 @@ type
|
||||||
procedure TV1DblClick(Sender: TObject);
|
procedure TV1DblClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
IsDebug, FPreviewPrint, fIsPreview: Boolean;
|
IsDebug, FPreviewPrint, fIsPreview: Boolean;
|
||||||
FLMType, FLBName: string;
|
FLMType, FLBName, FQrCodeField: string;
|
||||||
FExportFileType, FExportFileName: string;
|
FExportFileType, FExportFileName: string;
|
||||||
SqlStr1, SqlStr2, SqlStr3, SqlStr4, SqlStr5: string;
|
SqlStr1, SqlStr2, SqlStr3, SqlStr4, SqlStr5: string;
|
||||||
FSuccessfulFun: string;
|
FSuccessfulFun: string;
|
||||||
FparamBlclid: string;
|
FparamBlclid: string;
|
||||||
procedure PrintReport();
|
procedure PrintReport();
|
||||||
procedure ExportReport();
|
procedure ExportReport();
|
||||||
procedure InitAdo(Ado: TADOQuery; SqlStr: string);
|
procedure InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string);
|
||||||
procedure GetQrCode(Txt: string);
|
function GetQrCode(Txt: string): string;
|
||||||
procedure InitArgs();
|
procedure InitArgs();
|
||||||
|
function EnsureQrCodeDirectory: Boolean;
|
||||||
|
function ClearQrCodeDirectory: Boolean;
|
||||||
|
procedure IintCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet);
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
public
|
public
|
||||||
FPrintJson: PChar;
|
FPrintJson: PChar;
|
||||||
FJsonOut: PChar;
|
FJsonOut: PChar;
|
||||||
DConString, DCode, DName: string;
|
DConString, DCode, DName: string;
|
||||||
constructor Create(AOwner: TComponent; JsonArgs: PChar);
|
constructor Create(AOwner: TComponent; JsonArgs: PChar);
|
||||||
|
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TMakebar = procedure(ucData: pchar; nDataLen: integer; nErrLevel: integer; nMask: integer; nBarEdition: integer; szBmpFileName: pchar; nScale: integer); stdcall;
|
||||||
|
|
||||||
|
TMixtext = procedure(szSrcBmpFileName: PChar; szDstBmpFileName: PChar; sztext: PChar; fontsize, txtheight, hmargin, vmargin, txtcntoneline: integer); stdcall;
|
||||||
|
|
||||||
var
|
var
|
||||||
frmClientPrintRmf: TfrmClientPrintRmf;
|
frmClientPrintRmf: TfrmClientPrintRmf;
|
||||||
|
|
||||||
|
|
@ -77,33 +86,165 @@ begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
FPrintJson := JsonArgs;
|
FPrintJson := JsonArgs;
|
||||||
end;
|
end;
|
||||||
|
// 创建二维码存放目录(如果不存在)
|
||||||
|
|
||||||
procedure TfrmClientPrintRmf.GetQrCode(Txt: string);
|
function TfrmClientPrintRmf.EnsureQrCodeDirectory: Boolean;
|
||||||
|
var
|
||||||
|
QrCodeDir: string;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
QrCodeDir := ExtractFilePath(Application.ExeName) + 'QrCode\';
|
||||||
|
|
||||||
|
try
|
||||||
|
if not DirectoryExists(QrCodeDir) then
|
||||||
|
begin
|
||||||
|
if not ForceDirectories(QrCodeDir) then
|
||||||
|
raise Exception.Create('无法创建二维码目录: ' + QrCodeDir);
|
||||||
|
end;
|
||||||
|
Result := True;
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
begin
|
||||||
|
Application.MessageBox(PChar('创建二维码目录失败: ' + E.Message), '错误', MB_ICONERROR);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// 清空二维码目录中的所有文件
|
||||||
|
function TfrmClientPrintRmf.ClearQrCodeDirectory: Boolean;
|
||||||
|
var
|
||||||
|
QrCodeDir: string;
|
||||||
|
SearchRec: TSearchRec;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
QrCodeDir := ExtractFilePath(Application.ExeName) + 'QrCode\';
|
||||||
|
|
||||||
|
try
|
||||||
|
if not DirectoryExists(QrCodeDir) then
|
||||||
|
Exit; // 目录不存在视为成功
|
||||||
|
// 删除目录下所有.bmp文件
|
||||||
|
if FindFirst(QrCodeDir + '*.bmp', faAnyFile, SearchRec) = 0 then
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
DeleteFile(QrCodeDir + SearchRec.Name);
|
||||||
|
until FindNext(SearchRec) <> 0;
|
||||||
|
FindClose(SearchRec);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Result := True;
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
begin
|
||||||
|
Application.MessageBox(PChar('清空二维码目录失败: ' + E.Message), '错误', MB_ICONERROR);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmClientPrintRmf.IintCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet);
|
||||||
|
var
|
||||||
|
i, k: integer;
|
||||||
|
mfieldName: string;
|
||||||
|
mSize: integer;
|
||||||
|
begin
|
||||||
|
mfieldName := '';
|
||||||
|
mClientDataset.FieldDefs.Clear;
|
||||||
|
with SADOQry do
|
||||||
|
begin
|
||||||
|
for i := 0 to fieldCount - 1 do
|
||||||
|
begin
|
||||||
|
if (Fields[i].DataType = ftString) and (Fields[i].Size = 0) then
|
||||||
|
begin
|
||||||
|
mSize := 1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
mSize := Fields[i].Size;
|
||||||
|
mfieldName := trim(fields[i].FieldName);
|
||||||
|
mClientDataset.FieldDefs.Add(mfieldName, Fields[i].DataType, mSize);
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
mClientDataset.FieldDefs.Add('QRBARCODE', ftString, 200);
|
||||||
|
mClientDataset.Close;
|
||||||
|
mClientDataset.CreateDataSet;
|
||||||
|
|
||||||
|
if SADOQry.IsEmpty then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
SADOQry.first;
|
||||||
|
k := 1;
|
||||||
|
try
|
||||||
|
mClientDataset.DisableControls;
|
||||||
|
mClientDataset.Filtered := false;
|
||||||
|
|
||||||
|
while not SADOQry.Eof do
|
||||||
|
begin
|
||||||
|
with mClientDataset do
|
||||||
|
begin
|
||||||
|
Append;
|
||||||
|
for i := 0 to SADOQry.FieldCount - 1 do
|
||||||
|
begin
|
||||||
|
fields[i].value := SADOQry.Fields[i].Value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
fieldByName('QRBARCODE').value := '';
|
||||||
|
inc(k);
|
||||||
|
Post;
|
||||||
|
end;
|
||||||
|
SADOQry.Next;
|
||||||
|
end;
|
||||||
|
if not mClientDataset.IsEmpty then
|
||||||
|
begin
|
||||||
|
mClientDataset.First;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
mClientDataset.EnableControls;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TfrmClientPrintRmf.GetQrCode(Txt: string): string;
|
||||||
var
|
var
|
||||||
fPrintFile: string;
|
fPrintFile: string;
|
||||||
fImagePath: string;
|
fImagePath: string;
|
||||||
Moudle: THandle;
|
Moudle: THandle;
|
||||||
// Makebar: TMakebar;
|
Makebar: TMakebar;
|
||||||
// Mixtext: TMixtext;
|
Mixtext: TMixtext;
|
||||||
CurRow: Integer;
|
CurRow: Integer;
|
||||||
|
TimeStamp: string;
|
||||||
begin
|
begin
|
||||||
// try
|
Result := ''; // 初始化返回路径
|
||||||
// Moudle := LoadLibrary('MakeQRBarcode.dll');
|
|
||||||
// @Makebar := GetProcAddress(Moudle, 'Make');
|
|
||||||
// @Mixtext := GetProcAddress(Moudle, 'MixText');
|
|
||||||
// Txt := Trim(ADOQueryPrint.fieldbyname('MXID').AsString);
|
|
||||||
// fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
|
|
||||||
// if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
|
|
||||||
// CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
|
|
||||||
// if FileExists(fImagePath) then
|
|
||||||
// DeleteFile(fImagePath);
|
|
||||||
// Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
|
|
||||||
// except
|
|
||||||
// application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR);
|
|
||||||
// Order_Main.EnableControls;
|
|
||||||
// exit;
|
|
||||||
// end;
|
|
||||||
|
|
||||||
|
try
|
||||||
|
Moudle := LoadLibrary('MakeQRBarcode.dll');
|
||||||
|
if Moudle = 0 then
|
||||||
|
RaiseLastOSError;
|
||||||
|
|
||||||
|
@Makebar := GetProcAddress(Moudle, 'Make');
|
||||||
|
if not Assigned(Makebar) then
|
||||||
|
raise Exception.Create('找不到 Make 函数');
|
||||||
|
|
||||||
|
@Mixtext := GetProcAddress(Moudle, 'MixText');
|
||||||
|
if not Assigned(Mixtext) then
|
||||||
|
raise Exception.Create('找不到 MixText 函数');
|
||||||
|
|
||||||
|
// 生成时间戳文件名 (格式: YYYYMMDD_HHMMSSZZZ)
|
||||||
|
Sleep(10);
|
||||||
|
TimeStamp := FormatDateTime('yyyymmdd_hhnnsszzz', Now) + '_' + IntToStr(Random(1000));
|
||||||
|
fImagePath := ExtractFilePath(Application.ExeName) + 'QrCode\' + TimeStamp + '.bmp';
|
||||||
|
|
||||||
|
// 确保目录存在
|
||||||
|
if not DirectoryExists(ExtractFilePath(fImagePath)) then
|
||||||
|
ForceDirectories(ExtractFilePath(fImagePath));
|
||||||
|
|
||||||
|
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
|
||||||
|
|
||||||
|
Result := fImagePath; // 返回生成的文件路径
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
begin
|
||||||
|
application.MessageBox(PChar('条形码生成失败:' + E.Message), '错误', MB_ICONERROR);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmClientPrintRmf.InitArgs;
|
procedure TfrmClientPrintRmf.InitArgs;
|
||||||
|
|
@ -129,7 +270,7 @@ begin
|
||||||
FLBName := JSONObject.S['LBName'];
|
FLBName := JSONObject.S['LBName'];
|
||||||
FExportFileType := JSONObject.S['ExportFileType'];
|
FExportFileType := JSONObject.S['ExportFileType'];
|
||||||
FExportFileName := JSONObject.S['ExportFileName'];
|
FExportFileName := JSONObject.S['ExportFileName'];
|
||||||
|
FQrCodeField := JSONObject.S['QrCodeField'];
|
||||||
DConString := JSONObject.S['DConString'];
|
DConString := JSONObject.S['DConString'];
|
||||||
DCode := JSONObject.S['DCode'];
|
DCode := JSONObject.S['DCode'];
|
||||||
DName := JSONObject.S['DName'];
|
DName := JSONObject.S['DName'];
|
||||||
|
|
@ -138,8 +279,7 @@ begin
|
||||||
if Trim(FExportFileName) = '' then
|
if Trim(FExportFileName) = '' then
|
||||||
FExportFileName := FLBName;
|
FExportFileName := FLBName;
|
||||||
|
|
||||||
// 导出文件操作(保持不变)
|
|
||||||
ExportFtErpFile(FLBName + '.rmf', ADOQueryReport);
|
|
||||||
|
|
||||||
// ³õʼ»¯ SQL ×Ö·û´®±äÁ¿
|
// ³õʼ»¯ SQL ×Ö·û´®±äÁ¿
|
||||||
SqlStr1 := '';
|
SqlStr1 := '';
|
||||||
|
|
@ -180,18 +320,49 @@ begin
|
||||||
// RM1.PreviewButtons := [rmpbZoom, rmpbLoad, rmpbSave, rmpbFind, rmpbPageSetup, rmpbExit, rmpbSaveToXLS, rmpbExport, rmpbNavigator];
|
// RM1.PreviewButtons := [rmpbZoom, rmpbLoad, rmpbSave, rmpbFind, rmpbPageSetup, rmpbExit, rmpbSaveToXLS, rmpbExport, rmpbNavigator];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; SqlStr: string);
|
procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string);
|
||||||
|
var
|
||||||
|
QrCodeIdField: TField;
|
||||||
begin
|
begin
|
||||||
if Trim(SqlStr) = '' then
|
if Trim(SqlStr) = '' then
|
||||||
Exit;
|
Exit;
|
||||||
|
|
||||||
|
// 执行ADO查询
|
||||||
with Ado do
|
with Ado do
|
||||||
begin
|
begin
|
||||||
Close;
|
Close;
|
||||||
sql.Clear;
|
SQL.Clear;
|
||||||
sql.add(SqlStr);
|
SQL.Add(SqlStr);
|
||||||
// ShowMessage(SqlStr);
|
|
||||||
Open;
|
Open;
|
||||||
end;
|
end;
|
||||||
|
IintCDS(Ado, Cds);
|
||||||
|
|
||||||
|
// 检查是否存在二维码ID字段
|
||||||
|
if Trim(FQrCodeField) = '' then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
QrCodeIdField := Cds.FindField(FQrCodeField);
|
||||||
|
if QrCodeIdField = nil then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
// 生成二维码并绑定到ClientDataSet
|
||||||
|
with Cds do
|
||||||
|
begin
|
||||||
|
DisableControls;
|
||||||
|
try
|
||||||
|
First;
|
||||||
|
while not Eof do
|
||||||
|
begin
|
||||||
|
Edit;
|
||||||
|
FieldByName('QRBARCODE').AsString := GetQrCode(QrCodeIdField.AsString);
|
||||||
|
Post;
|
||||||
|
Next;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
First;
|
||||||
|
EnableControls;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmClientPrintRmf.ExportReport();
|
procedure TfrmClientPrintRmf.ExportReport();
|
||||||
|
|
@ -259,7 +430,10 @@ begin
|
||||||
ConnectionString := DConString;
|
ConnectionString := DConString;
|
||||||
Connected := true;
|
Connected := true;
|
||||||
end;
|
end;
|
||||||
|
// 导出文件操作(保持不变)
|
||||||
|
ExportFtErpFile(FLBName + '.rmf', ADOQueryReport);
|
||||||
|
EnsureQrCodeDirectory();
|
||||||
|
ClearQrCodeDirectory();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmClientPrintRmf.FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure TfrmClientPrintRmf.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
|
@ -284,11 +458,11 @@ begin
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
InitAdo(ADO_1, SqlStr1);
|
InitAdo(ADO_Prt, CDS_1, SqlStr1);
|
||||||
InitAdo(ADO_2, SqlStr2);
|
InitAdo(ADO_Prt, CDS_2, SqlStr2);
|
||||||
InitAdo(ADO_3, SqlStr3);
|
InitAdo(ADO_Prt, CDS_3, SqlStr3);
|
||||||
InitAdo(ADO_4, SqlStr4);
|
InitAdo(ADO_Prt, CDS_4, SqlStr4);
|
||||||
InitAdo(ADO_5, SqlStr5);
|
InitAdo(ADO_Prt, CDS_5, SqlStr5);
|
||||||
|
|
||||||
if FExportFileType = '' then
|
if FExportFileType = '' then
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ begin
|
||||||
Result := FJsonOut;
|
Result := FJsonOut;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
// '{ "LBName": "˛âĘÔ","DConString": "'+DConString+'","DCode": "'+DCode+'","DName": "'+DName+'","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC p_test ''22'' " }] }';
|
// '{ "LBName": "˛âĘÔ","QrCodeField": "ssid","DConString": "'+DConString+'","DCode": "'+DCode+'","DName": "'+DName+'","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC p_test ''22'' " }] }';
|
||||||
|
|
||||||
function FunPrint(App: Tapplication; JsonArgs: PChar): PChar;
|
function FunPrint(App: Tapplication; JsonArgs: PChar): PChar;
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ var
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp;
|
U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp, U_LabelPrintFun;
|
||||||
|
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
|
|
@ -425,52 +425,16 @@ end;
|
||||||
|
|
||||||
procedure TfrmYMTFHSQList.TBPrintClick(Sender: TObject);
|
procedure TfrmYMTFHSQList.TBPrintClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
fPrintFile: string;
|
MPrintJson, JsonResult, msql: string;
|
||||||
Txt, fImagePath: string;
|
|
||||||
Moudle: THandle;
|
|
||||||
Makebar: TMakebar;
|
|
||||||
Mixtext: TMixtext;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
if Order_Main.IsEmpty then
|
if Order_Main.IsEmpty then
|
||||||
Exit;
|
Exit;
|
||||||
|
msql := ' select A.*,B.* from YMT_FHSQ_Main A inner join YMT_FHSQ_Sub B on A.FSId=B.FSId where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''';
|
||||||
|
|
||||||
with ADOQueryPrint do
|
MPrintJson := '{ "LBName": "Å÷²¼·¢»õÉêÇëµ¥","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }';
|
||||||
begin
|
FunPrint(Application, PChar(MPrintJson));
|
||||||
Close;
|
|
||||||
sql.Clear;
|
|
||||||
Sql.Add(' select A.*,B.* ');
|
|
||||||
sql.Add(' from YMT_FHSQ_Main A inner join YMT_FHSQ_Sub B on A.FSId=B.FSId ');
|
|
||||||
sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''');
|
|
||||||
open;
|
|
||||||
// showmessage(sql.text);
|
|
||||||
end;
|
|
||||||
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\坯布发货申请单.rmf';
|
|
||||||
if FileExists(fPrintFile) then
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Moudle := LoadLibrary('MakeQRBarcode.dll');
|
|
||||||
@Makebar := GetProcAddress(Moudle, 'Make');
|
|
||||||
@Mixtext := GetProcAddress(Moudle, 'MixText');
|
|
||||||
Txt := Trim(Order_Main.fieldbyname('FSID').AsString);
|
|
||||||
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
|
|
||||||
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
|
|
||||||
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
|
|
||||||
if FileExists(fImagePath) then
|
|
||||||
DeleteFile(fImagePath);
|
|
||||||
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
|
|
||||||
except
|
|
||||||
application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR);
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
RMVariables['QRBARCODE'] := fImagePath;
|
|
||||||
RM1.LoadFromFile(fPrintFile);
|
|
||||||
RM1.ShowReport;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\坯布发货申请单.rmf'), '提示', 0);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmYMTFHSQList.TBRafreshClick(Sender: TObject);
|
procedure TfrmYMTFHSQList.TBRafreshClick(Sender: TObject);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
object frmYMTRKList: TfrmYMTRKList
|
object frmYMTRKList: TfrmYMTRKList
|
||||||
Left = 557
|
Left = 264
|
||||||
Top = 418
|
Top = 309
|
||||||
Width = 1370
|
Width = 1370
|
||||||
Height = 750
|
Height = 750
|
||||||
Caption = #38754#26009#22238#20179#30331#35760
|
Caption = #38754#26009#22238#20179#30331#35760
|
||||||
|
|
|
||||||
|
|
@ -467,7 +467,7 @@ begin
|
||||||
if CDS_Main.IsEmpty then
|
if CDS_Main.IsEmpty then
|
||||||
Exit;
|
Exit;
|
||||||
MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString);
|
MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString);
|
||||||
MPrintJson := '{ "LBName": "±êÇ©´òÓ¡","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 '' ' + MFiltration + ''' " }] }';
|
MPrintJson := '{ "LBName": "±êÇ©´òÓ¡","QrCodeField": "MXID","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 ''' + MFiltration + ''' " }] }';
|
||||||
FunPrint(Application, PChar(MPrintJson));
|
FunPrint(Application, PChar(MPrintJson));
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ DebugSourceDirs=
|
||||||
UsePackages=0
|
UsePackages=0
|
||||||
[Parameters]
|
[Parameters]
|
||||||
RunParams=
|
RunParams=
|
||||||
HostApplication=D:\Project\D7myYunxiang\云翔一码通\testDll.exe
|
HostApplication=E:\项目资料\00_重点客户\云翔\D7myYunxiang\云翔一码通\testDll.exe
|
||||||
Launcher=
|
Launcher=
|
||||||
UseLauncher=0
|
UseLauncher=0
|
||||||
DebugCWD=
|
DebugCWD=
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user