[Gelöst]QR Code im RDLC Report

14. Februar 2024 11:59

Hallo zusammen,

es gibt viele Fragen zu diesem Thema im Forum, jedoch keine eindeutige bzw. ersichtliche Lösung. Ich suche aktuell einen Weg, einen QR-Code im Report abbilden zu können. Ich habe mich schlau gemacht und konnte die Open Source Library von ZXing integrieren. Mit dem Beispielcode war ich in der Lage einen QR-Code aus einem Report zu generieren und diesen *nur" Local auf dem Rechner als Bilddatei zu sichern.
Quelle: https://navision24.de/blog/qr-codes-in- ... eugen.html

Anforderung:

Ich habe einen Report mit einem Dataset aus der Production Order Tabelle. Ich möchte einige Felder wie z.B. die Fertigungsauftragsnummer oder das Fertigstellungsdatum abgreifen und diese im QR Code abbilden. Der QR-Code soll in einer Variable zwischengespeichert werden und im Report Designer als Bild eingefügt werden.
Hat jemand einen Tipp bzw. schon so etwas realisieren müssen ?
Danke vorab.

Gruß,

hukahu23489
Zuletzt geändert von hukahu23489 am 16. Februar 2024 10:53, insgesamt 1-mal geändert.

Re: QR Code im RDLC Report

14. Februar 2024 12:44

Hallo,

Die Lösung dafür ist praktisch in jedem Belegreport drin-> Das Beleg-Logo.

Das kann man optimieren, aber grundsätzlich funktionieren sollte es damit.

Du solltest darauf achten, das das Bild des QR- Codes im Ausdruck nicht skaliert wird, und das du ein nicht oder nicht s stark komprimiertes Bild an der Bericht übergibst (wg. der Kompressionsartefakte)

Gruß Fiddi

Re: QR Code im RDLC Report

14. Februar 2024 13:01

Hallo,

ok aber wie kann ich die Bilddatei in eine Variable übergeben ? Aktuell kann ich den QR-Code nur lokal ablegen.
Code:
///////////////////QR-Code-Testen/////////////////////////
EncodingOption := EncodingOption.EncodingOptions();
EncodingOption.Height := 2000;
EncodingOption.Width := 2000;
 
barcodeWriter := barcodeWriter.BarcodeWriter();
barcodeWriter.Format := BarcodeFormat.QR_CODE;
barcodeWriter.Options := EncodingOption;
QRCOde := 'MECARD:' +
  'N:' + 'Richter,Joachim' + ';' +
  'TEL:' + '0251 924329-0' + ';' +
  'EMAIL:' + 'jr@cronus.ag' + ';' +
  'URL:' + 'https://navision24.de/' + ';';
 
BitMatrix := barcodeWriter.Encode(QRCOde);
bitmap := barcodeWriter.Write(BitMatrix);
[b]bitmap.Save('c:\user\testfolder');[/b]

Re: QR Code im RDLC Report

14. Februar 2024 13:31

Hi,

vielleicht hilft Dir das, das habe ich vor einiger Zeit mal für zxing und einen Barcodecode benutzt:
Code:
    PROCEDURE GenerateBarcode@1000000035(TextToEncode@1000000004 : Text;VAR TempBlob@1000000008 : TEMPORARY Record 99008535);
    VAR
      Bitmap@1000000003 : DotNet "'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Drawing.Bitmap";
      ImageFormat@1000000002 : DotNet "'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Drawing.Imaging.ImageFormat";
      OStream@1000000001 : OutStream;
    BEGIN
      //Create Barcode an Save in TempBlob
      TempBlob.Blob.CREATEOUTSTREAM(OStream);
      Bitmap := BarcodeWriter.Write(TextToEncode);
      Bitmap.Save(OStream,ImageFormat.Png);
    END;


Jetzt kannst du mit den TempBlob weiterarbeiten :-)

Re: QR Code im RDLC Report

14. Februar 2024 14:56

Hi,

danke für den Code. Ich programmiere noch in Cal. Habe nun meinen Testcode ergänzt, bekomme aber noch folgenden Fehler, wenn ich den Report ausführen möchte. (Siehe Anhang)
Code:
///////////////////QR-Code-Testen/////////////////////////
EncodingOption := EncodingOption.EncodingOptions();
EncodingOption.Height := 2000;
EncodingOption.Width := 2000;
 
barcodeWriter := barcodeWriter.BarcodeWriter();
barcodeWriter.Format := BarcodeFormat.QR_CODE;
barcodeWriter.Options := EncodingOption;
QRCOde := 'MECARD:' +
  'N:' + 'Richter,Joachim' + ';' +
  'TEL:' + '0251 924329-0' + ';' +
  'EMAIL:' + 'jr@cronus.ag' + ';' +
  'URL:' + 'https://navision24.de/' + ';';
 
BitMatrix := barcodeWriter.Encode(QRCOde);
//bitmap := barcodeWriter.Write(BitMatrix);
//bitmap.Save('c:\user\testfolder');

///Create Barcode and Save in TempBlop
      TempBlob.Blob.CREATEOUTSTREAM(OStream);
      bitmap := barcodeWriter.Write(BitMatrix);
      bitmap.Save(OStream,ImageFormat.Png);
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: QR Code im RDLC Report

15. Februar 2024 09:04

Hallo,
ich hatte vor einiger Zeit ebenfalls die Anforderung, in einem NAV2018-Report einen QR-Code zu drucken.
Aus einem Forenbeitrag von Kowa wusste ich, dass es in der mexikanischen Version von NAV eine Funktion gibt, mit der ein String zu einem QR-Code umgewandelt werden kann.
Ich füge hier mal meine Codeunit mit den Funktionen an.

Für die Generierung des QR-Codes musst du dann nur eine temporäre Recordvariable "TempBLOB" erstellen und zusammen mit deiner Textvariablen, die als QR-Code umgewandelt werden soll, an die Funktion "CreateQRCode" übergeben.
Der QR-Code wird dann in TempBLOB gespeichert.

Code:
QRCodeMgt.CreateQRCode(QRCodeInput,TempBlob);
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: QR Code im RDLC Report

15. Februar 2024 09:35

Hier ist ein weiteres Codebeispiel.

Re: QR Code im RDLC Report

15. Februar 2024 12:42

Super, vielen Dank. Ich schaue mir das nachher an.

Re: QR Code im RDLC Report

15. Februar 2024 15:44

Hallo,

Danke, es scheint zu klappen, jedoch wird meine Textvariable als String abgebildet und nicht als QR-Code. Benötige ich im Report Builder zusätzlich eine "QR-Code Schriftart" ?

Gruß,

hukahu23489

Re: QR Code im RDLC Report

16. Februar 2024 08:58

Hallo,
du musst in deinem Report dann das blob-Feld aus der TempBlob-Tabelle als Bild drucken.

Re: QR Code im RDLC Report

16. Februar 2024 10:52

Hallo,

danke für alle Tipps. Super Forum. Ich kann nun einen QR Code generieren.

VG

Re: [Gelöst]QR Code im RDLC Report

16. Februar 2024 10:56

Hallo,
Ich kann nun einen QR Code generieren.

warum?

Gruß Fiddi

Re: [Gelöst]QR Code im RDLC Report

19. Februar 2024 11:28

fiddi hat geschrieben:Hallo,
Ich kann nun einen QR Code generieren.

warum?
Gruß Fiddi


Was meinst du mit warum ?

Re: [Gelöst]QR Code im RDLC Report

19. Februar 2024 11:34

Hallo,

warum kannst du nur einen QR- Code generieren?

Du kannst die QR-Codes, je nachdem, ob du sie als BLOB oder gleich als MIME- encoded Text (bei RDLC) an den Report übergibst, in unterschiedlichen Variablen übergeben, und damit auch mehrere QR- Codes.

Gruß Fiddi

Re: [Gelöst]QR Code im RDLC Report

29. Februar 2024 09:31

Hallo,

richtig, ich hatte geschrieben "Ich kann nun einen QR Code generieren", also dass es nun klappt.

Danke & Gruß

Re: [Gelöst]QR Code im RDLC Report

29. Februar 2024 09:43

Lesen müsste man können :oops: :roll: .