Powerbuilder Tips

Generatore di codici QR

(testato su PB 2019-R3 e PB 2022-R3)

Questo dimostrativo, commentato in Italiano e scaricabile nelle due versioni, basandosi sulla libreria open source 'QRCoder.dll' e sul wrapper 'QRCodegenerator.dll' realizzato da Bruce Armstrong, consente la generazione di codici QR, la memorizzazione del codice generato in un file .png e la visualizzazione del QR in tre modi diversi.

Come si presenta il progetto dimostrativo all'interno dell'IDE
generazione qr
Il generatore di codice QR qui presentato su basa sulla libreria Open Source QRCoder.
QRCoder è una semplice libreria, scritta in C#.NET, che consente di creare codici QR. Non ha dipendenze da altre librerie ed è disponibile come versione .NET Framework e .NET Core
A questo indirizzo https://github.com/codebude/QRCoder si trova tutta la teoria base.

Purtroppo QRCoder.dll non è direttamente importabile in Powerbuilder con il tool ".NET DLL Importer" perciò è necessario sviluppare un 'wrapper', cioè una 'classe involucro' che ne consenta l'utilizzo.

Bruce Armstrong ha sviluppato il wrapper (contenitore) "QRCodeGenerator.dll" (di 4 KByes) per interfacciare, in modo semplificato, la libreria "QRCoder.dll" (122 KBytes).
[ https://community.appeon.com/index.php/codeexchange/powerbuilder/284-qr-code-generator#519 ]

Io ho realizzato questo progetto dimostrativo delle funzionalità, in Italiano, con parti commentate e direttamente utilizzabili in un applicativo finale, come del resto io stesso ho fatto inserendo parte del codice nell'applicativo ZEUS del mio cliente.

Il dimostrativo in funzione con tre diverse modalità di visualizzazione generazione qr

Download dell'applicazione completa
Completo vers. PB 2019 R3
Completo vers. PB 2022 R3
Attenzione.
Il contenuto dei due pacchetti sembra uguale ma il 'non-visual object' è differente. Infatti la versione 2019 utilizza la funzione Powerbuilder 'LoadWithDotNetFramework' che, insieme alla 'LoadWithDotNetCore' diventano sconsigliate nella versione di Powerbuilder 2022 dove dovrebbero essere sostituite dalla funzione 'LoadWithDotNet'.
Comunque, se volete, potete sostituire (sempre nella versione 2019) 'LoadWithDotNetFramework' con 'LoadWithDotNetCore' nella funzione 'of_createondemand()' e farla seguire da una istruzione 'messagebox (".NET",lnv_assembly.GetDotNetCoreVersion())' per poter conoscere quale runtime .NET viene utilizzato durante l'esecuzione.
Attenzione.
Per il funzionamento degli eseguibili, supposto installato sul computer il corretto Runtime di Powerbuilder, servono soltanto: "generatore-codice-qr-64.exe", "generatore-codice-qr-64.xml", "generatore-codice-qr-32.exe", "generatore-codice-qr-32.xml", "generatore-codice-qr.pbd", "QRCoder.dll" e "QRCodeGenerator.dll".

Inoltre devono essere installati dei Runtime .NET.
per la versione 2019R3: se lasciate la funzione 'LoadWithDotNetFramework' come è nel pacchetto qui allegato da scaricare, funziona con "Microsoft .NET Framework 4.5" e successive; se invece sostituite 'LoadWithDotNetFramework' con 'LoadWithDotNetCore' funziona con un ".NET Core Runtime" dalla 3 in poi, anche se io consiglio ".NET 8.0 Desktop Runtime (v8.0.2)" sia 'x86' (per il generatore-qr a 32 bits) che 'x64' (per il generatore-qr a 64 bits).
per la versione 2022R3: va bene .NET 6 (come per esempio ".NET Desktop Runtime 6.0.27") o successive come, ad esempio, ".NET Desktop Runtime 8.0.2".