添加二维码
This commit is contained in:
parent
45d496c3ad
commit
a44aa2e3e5
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,6 +4,7 @@
|
|||
**/image
|
||||
**/doc
|
||||
**/wav
|
||||
**/QrCode
|
||||
**/__history
|
||||
**/__recovery
|
||||
*.dll
|
||||
|
|
@ -19,4 +20,4 @@
|
|||
*.identcache
|
||||
*.local
|
||||
*.zip
|
||||
*.rar
|
||||
*.rar
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
object frmClientPrintRmf: TfrmClientPrintRmf
|
||||
Left = 874
|
||||
Top = 483
|
||||
Width = 419
|
||||
Height = 249
|
||||
Width = 754
|
||||
Height = 704
|
||||
Caption = #25253#34920#25171#21360
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
|
|
@ -22,20 +22,20 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
|||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 265
|
||||
Top = 65503
|
||||
Left = 273
|
||||
Top = 12
|
||||
end
|
||||
object ADOConnection1: TADOConnection
|
||||
LoginPrompt = False
|
||||
Left = 19
|
||||
Top = 65503
|
||||
Left = 27
|
||||
Top = 12
|
||||
end
|
||||
object ImageList1: TImageList
|
||||
DrawingStyle = dsTransparent
|
||||
Height = 32
|
||||
Width = 32
|
||||
Left = 101
|
||||
Top = 91
|
||||
Left = 109
|
||||
Top = 136
|
||||
Bitmap = {
|
||||
494C010119002400040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
000000000000360000002800000080000000E0000000010020000000000000C0
|
||||
|
|
@ -3742,9 +3742,9 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
|||
end
|
||||
object RMDB_1: TRMDBDataSet
|
||||
Visible = True
|
||||
DataSet = ADO_1
|
||||
Left = 265
|
||||
Top = 91
|
||||
DataSet = CDS_1
|
||||
Left = 273
|
||||
Top = 136
|
||||
end
|
||||
object RM1: TRMGridReport
|
||||
ThreadPrepareReport = True
|
||||
|
|
@ -3763,48 +3763,34 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
|||
CompressThread = False
|
||||
LaterBuildEvents = True
|
||||
OnlyOwnerDataSet = False
|
||||
Left = 265
|
||||
Top = 153
|
||||
Left = 273
|
||||
Top = 198
|
||||
ReportData = {}
|
||||
end
|
||||
object RMDB_2: TRMDBDataSet
|
||||
Visible = True
|
||||
DataSet = ADO_2
|
||||
Left = 347
|
||||
Top = 91
|
||||
DataSet = CDS_2
|
||||
Left = 355
|
||||
Top = 136
|
||||
end
|
||||
object CDS_Label: TClientDataSet
|
||||
Aggregates = <>
|
||||
Params = <>
|
||||
Left = 19
|
||||
Top = 91
|
||||
Left = 27
|
||||
Top = 136
|
||||
end
|
||||
object ADO_1: TADOQuery
|
||||
object ADO_Prt: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 347
|
||||
Top = 65503
|
||||
end
|
||||
object ADO_2: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 19
|
||||
Top = 29
|
||||
Left = 355
|
||||
Top = 12
|
||||
end
|
||||
object RMDB_3: TRMDBDataSet
|
||||
Visible = True
|
||||
DataSet = ADO_3
|
||||
Left = 19
|
||||
Top = 153
|
||||
end
|
||||
object ADO_3: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 101
|
||||
Top = 29
|
||||
DataSet = CDS_3
|
||||
Left = 27
|
||||
Top = 198
|
||||
end
|
||||
object RMXLSExport1: TRMXLSExport
|
||||
ShowAfterExport = True
|
||||
|
|
@ -3817,61 +3803,78 @@ object frmClientPrintRmf: TfrmClientPrintRmf
|
|||
ScaleX = 1.000000000000000000
|
||||
ScaleY = 1.000000000000000000
|
||||
CompressFile = False
|
||||
Left = 19
|
||||
Top = 215
|
||||
Left = 27
|
||||
Top = 260
|
||||
end
|
||||
object RMJPEGExport1: TRMJPEGExport
|
||||
ScaleX = 1.000000000000000000
|
||||
ScaleY = 1.000000000000000000
|
||||
Left = 347
|
||||
Top = 153
|
||||
Left = 355
|
||||
Top = 198
|
||||
end
|
||||
object RMBarCodeObject1: TRMBarCodeObject
|
||||
Left = 183
|
||||
Top = 91
|
||||
Left = 191
|
||||
Top = 136
|
||||
end
|
||||
object ADOQueryCmd: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
Parameters = <>
|
||||
Left = 101
|
||||
Top = 65503
|
||||
Left = 109
|
||||
Top = 12
|
||||
end
|
||||
object ADO_While: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 347
|
||||
Top = 29
|
||||
end
|
||||
object ADO_4: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 183
|
||||
Top = 29
|
||||
Left = 355
|
||||
Top = 74
|
||||
end
|
||||
object RMDB_4: TRMDBDataSet
|
||||
Visible = True
|
||||
DataSet = ADO_4
|
||||
Left = 101
|
||||
Top = 153
|
||||
end
|
||||
object ADO_5: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
LockType = ltReadOnly
|
||||
Parameters = <>
|
||||
Left = 265
|
||||
Top = 29
|
||||
DataSet = CDS_4
|
||||
Left = 109
|
||||
Top = 198
|
||||
end
|
||||
object RMDB_5: TRMDBDataSet
|
||||
Visible = True
|
||||
DataSet = ADO_5
|
||||
Left = 183
|
||||
Top = 153
|
||||
DataSet = CDS_5
|
||||
Left = 191
|
||||
Top = 198
|
||||
end
|
||||
object ADOQueryReport: TADOQuery
|
||||
Connection = ADOConnection1
|
||||
Parameters = <>
|
||||
Left = 183
|
||||
Top = 65503
|
||||
Left = 191
|
||||
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
|
||||
|
|
|
|||
|
|
@ -23,20 +23,21 @@ type
|
|||
RM1: TRMGridReport;
|
||||
RMDB_2: TRMDBDataSet;
|
||||
CDS_Label: TClientDataSet;
|
||||
ADO_1: TADOQuery;
|
||||
ADO_2: TADOQuery;
|
||||
ADO_Prt: TADOQuery;
|
||||
RMDB_3: TRMDBDataSet;
|
||||
ADO_3: TADOQuery;
|
||||
RMXLSExport1: TRMXLSExport;
|
||||
RMJPEGExport1: TRMJPEGExport;
|
||||
RMBarCodeObject1: TRMBarCodeObject;
|
||||
ADOQueryCmd: TADOQuery;
|
||||
ADO_While: TADOQuery;
|
||||
ADO_4: TADOQuery;
|
||||
RMDB_4: TRMDBDataSet;
|
||||
ADO_5: TADOQuery;
|
||||
RMDB_5: TRMDBDataSet;
|
||||
ADOQueryReport: TADOQuery;
|
||||
CDS_1: TClientDataSet;
|
||||
CDS_2: TClientDataSet;
|
||||
CDS_3: TClientDataSet;
|
||||
CDS_4: TClientDataSet;
|
||||
CDS_5: TClientDataSet;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure FormShow(Sender: TObject);
|
||||
|
|
@ -44,25 +45,33 @@ type
|
|||
procedure TV1DblClick(Sender: TObject);
|
||||
private
|
||||
IsDebug, FPreviewPrint, fIsPreview: Boolean;
|
||||
FLMType, FLBName: string;
|
||||
FLMType, FLBName, FQrCodeField: string;
|
||||
FExportFileType, FExportFileName: string;
|
||||
SqlStr1, SqlStr2, SqlStr3, SqlStr4, SqlStr5: string;
|
||||
FSuccessfulFun: string;
|
||||
FparamBlclid: string;
|
||||
procedure PrintReport();
|
||||
procedure ExportReport();
|
||||
procedure InitAdo(Ado: TADOQuery; SqlStr: string);
|
||||
procedure GetQrCode(Txt: string);
|
||||
procedure InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string);
|
||||
function GetQrCode(Txt: string): string;
|
||||
procedure InitArgs();
|
||||
function EnsureQrCodeDirectory: Boolean;
|
||||
function ClearQrCodeDirectory: Boolean;
|
||||
procedure IintCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet);
|
||||
{ Private declarations }
|
||||
public
|
||||
FPrintJson: PChar;
|
||||
FJsonOut: PChar;
|
||||
DConString, DCode, DName: string;
|
||||
constructor Create(AOwner: TComponent; JsonArgs: PChar);
|
||||
|
||||
{ Public declarations }
|
||||
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
|
||||
frmClientPrintRmf: TfrmClientPrintRmf;
|
||||
|
||||
|
|
@ -77,33 +86,165 @@ begin
|
|||
inherited Create(AOwner);
|
||||
FPrintJson := JsonArgs;
|
||||
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
|
||||
fPrintFile: string;
|
||||
fImagePath: string;
|
||||
Moudle: THandle;
|
||||
// Makebar: TMakebar;
|
||||
// Mixtext: TMixtext;
|
||||
Makebar: TMakebar;
|
||||
Mixtext: TMixtext;
|
||||
CurRow: Integer;
|
||||
TimeStamp: string;
|
||||
begin
|
||||
// try
|
||||
// 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;
|
||||
Result := ''; // 初始化返回路径
|
||||
|
||||
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;
|
||||
|
||||
procedure TfrmClientPrintRmf.InitArgs;
|
||||
|
|
@ -129,7 +270,7 @@ begin
|
|||
FLBName := JSONObject.S['LBName'];
|
||||
FExportFileType := JSONObject.S['ExportFileType'];
|
||||
FExportFileName := JSONObject.S['ExportFileName'];
|
||||
|
||||
FQrCodeField := JSONObject.S['QrCodeField'];
|
||||
DConString := JSONObject.S['DConString'];
|
||||
DCode := JSONObject.S['DCode'];
|
||||
DName := JSONObject.S['DName'];
|
||||
|
|
@ -138,8 +279,7 @@ begin
|
|||
if Trim(FExportFileName) = '' then
|
||||
FExportFileName := FLBName;
|
||||
|
||||
// 导出文件操作(保持不变)
|
||||
ExportFtErpFile(FLBName + '.rmf', ADOQueryReport);
|
||||
|
||||
|
||||
// ³õʼ»¯ SQL ×Ö·û´®±äÁ¿
|
||||
SqlStr1 := '';
|
||||
|
|
@ -180,18 +320,49 @@ begin
|
|||
// RM1.PreviewButtons := [rmpbZoom, rmpbLoad, rmpbSave, rmpbFind, rmpbPageSetup, rmpbExit, rmpbSaveToXLS, rmpbExport, rmpbNavigator];
|
||||
end;
|
||||
|
||||
procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; SqlStr: string);
|
||||
procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string);
|
||||
var
|
||||
QrCodeIdField: TField;
|
||||
begin
|
||||
if Trim(SqlStr) = '' then
|
||||
Exit;
|
||||
|
||||
// 执行ADO查询
|
||||
with Ado do
|
||||
begin
|
||||
Close;
|
||||
sql.Clear;
|
||||
sql.add(SqlStr);
|
||||
// ShowMessage(SqlStr);
|
||||
SQL.Clear;
|
||||
SQL.Add(SqlStr);
|
||||
Open;
|
||||
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;
|
||||
|
||||
procedure TfrmClientPrintRmf.ExportReport();
|
||||
|
|
@ -259,7 +430,10 @@ begin
|
|||
ConnectionString := DConString;
|
||||
Connected := true;
|
||||
end;
|
||||
|
||||
// 导出文件操作(保持不变)
|
||||
ExportFtErpFile(FLBName + '.rmf', ADOQueryReport);
|
||||
EnsureQrCodeDirectory();
|
||||
ClearQrCodeDirectory();
|
||||
end;
|
||||
|
||||
procedure TfrmClientPrintRmf.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
|
|
@ -284,11 +458,11 @@ begin
|
|||
exit;
|
||||
end;
|
||||
|
||||
InitAdo(ADO_1, SqlStr1);
|
||||
InitAdo(ADO_2, SqlStr2);
|
||||
InitAdo(ADO_3, SqlStr3);
|
||||
InitAdo(ADO_4, SqlStr4);
|
||||
InitAdo(ADO_5, SqlStr5);
|
||||
InitAdo(ADO_Prt, CDS_1, SqlStr1);
|
||||
InitAdo(ADO_Prt, CDS_2, SqlStr2);
|
||||
InitAdo(ADO_Prt, CDS_3, SqlStr3);
|
||||
InitAdo(ADO_Prt, CDS_4, SqlStr4);
|
||||
InitAdo(ADO_Prt, CDS_5, SqlStr5);
|
||||
|
||||
if FExportFileType = '' then
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ begin
|
|||
Result := FJsonOut;
|
||||
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;
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ var
|
|||
implementation
|
||||
|
||||
uses
|
||||
U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp;
|
||||
U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp, U_LabelPrintFun;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
|
|
@ -425,52 +425,16 @@ end;
|
|||
|
||||
procedure TfrmYMTFHSQList.TBPrintClick(Sender: TObject);
|
||||
var
|
||||
fPrintFile: string;
|
||||
Txt, fImagePath: string;
|
||||
Moudle: THandle;
|
||||
Makebar: TMakebar;
|
||||
Mixtext: TMixtext;
|
||||
MPrintJson, JsonResult, msql: string;
|
||||
begin
|
||||
|
||||
if Order_Main.IsEmpty then
|
||||
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
|
||||
begin
|
||||
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;
|
||||
MPrintJson := '{ "LBName": "Å÷²¼·¢»õÉêÇëµ¥","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }';
|
||||
FunPrint(Application, PChar(MPrintJson));
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmYMTFHSQList.TBRafreshClick(Sender: TObject);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
object frmYMTRKList: TfrmYMTRKList
|
||||
Left = 557
|
||||
Top = 418
|
||||
Left = 264
|
||||
Top = 309
|
||||
Width = 1370
|
||||
Height = 750
|
||||
Caption = #38754#26009#22238#20179#30331#35760
|
||||
|
|
|
|||
|
|
@ -467,7 +467,7 @@ begin
|
|||
if CDS_Main.IsEmpty then
|
||||
Exit;
|
||||
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));
|
||||
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ DebugSourceDirs=
|
|||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=
|
||||
HostApplication=D:\Project\D7myYunxiang\云翔一码通\testDll.exe
|
||||
HostApplication=E:\项目资料\00_重点客户\云翔\D7myYunxiang\云翔一码通\testDll.exe
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user