From 0743f8275684ea62631baf2b172f931d0091beb6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E401PHE\\Administrator" Date: Sat, 30 Aug 2025 14:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E5=A4=8D=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- A00标签打印/U_QrCodeFun.pas | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/A00标签打印/U_QrCodeFun.pas b/A00标签打印/U_QrCodeFun.pas index 17d5abc..223d920 100644 --- a/A00标签打印/U_QrCodeFun.pas +++ b/A00标签打印/U_QrCodeFun.pas @@ -24,19 +24,20 @@ procedure SetQrCodePath(Cds: TclientDataSet; FQrCodeField: string); implementation -procedure SetQrCodePath(Cds: TclientDataSet; FQrCodeField: string); +procedure SetQrCodePath(Cds: TClientDataSet; FQrCodeField: string); var QrCodeIdField: TField; + CurrentQrCodeId, LastQrCodeId, LastQrCodePath: string; begin - // ǷڶάIDֶ - if Trim(FQrCodeField) = '' then - Exit; - + // άIDֶǷ QrCodeIdField := Cds.FindField(FQrCodeField); if QrCodeIdField = nil then Exit; - // ɶά벢󶨵ClientDataSet + // ʼ + LastQrCodeId := ''; + LastQrCodePath := ''; + with Cds do begin DisableControls; @@ -44,9 +45,25 @@ begin First; while not Eof do begin - Edit; - FieldByName('QRBARCODE').AsString := GetQrCode(QrCodeIdField.AsString); - Post; + CurrentQrCodeId := QrCodeIdField.AsString; + + // ǰһͬöά· + if (CurrentQrCodeId = LastQrCodeId) and (LastQrCodePath <> '') then + begin + Edit; + FieldByName('QRBARCODE').AsString := LastQrCodePath; + Post; + end + else + begin + // µĶά벢¼· + Edit; + LastQrCodePath := GetQrCode(CurrentQrCodeId); + FieldByName('QRBARCODE').AsString := LastQrCodePath; + Post; + LastQrCodeId := CurrentQrCodeId; + end; + Next; end; finally