QR and barcode
(Created page with "To get the functionality to generate QR codes in Turnkey follow this pattern: none|thumb|577x577px Add a class ZXing (this is the open source...")
 
No edit summary
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
To get the functionality to generate QR codes in Turnkey follow this pattern:
<message>Write the content here to display this box</message>
Follow this pattern to get the functionality to generate QR codes in '''Turnkey''':
 
(Please note: this does not work in a [[Documentation:Serverside actions|serverside]] job.)
[[File:2018-07-29 12h32 21.png|none|thumb|577x577px]]
[[File:2018-07-29 12h32 21.png|none|thumb|577x577px]]
Add a class ZXing (this is the open source [https://zxingnet.codeplex.com/ QR-code library we use], credits go to everyone involved in that). Add a static method with this signature QRImage(width:Integer; height:Integer; value:String):Image – and then you have access.  
Add a class '''ZXing''' (this is the open-source [https://zxingnet.codeplex.com/ QR-code library we use], credit goes to everyone involved in that).
 
Add a static method with this signature <code><span class="col-black">QRImage(width:Integer; height:Integer; value:String):Image</span></code> – and then you have access.
 
In the application (a returns and reclamation system) where this was first used, we added a derived attribute like this:
QRCode: Blob , DerivationOcl = ZXing.QRImage(300,300,’https://reklamation.azurewebsites.net/MDriven/DisplayWithVariables?view=TestQRCodeFromVariable&id=$null$&vLopnummer=’+self.Lopnummer.asstring)
 
The Method must be marked with Tagged Value : Eco.ExternalLateBound = AnyValue
Let me explain the OCL a bit:
 
<code><span class="col-black"><span class="col-black">'''ZXing.QRImage(300,300, theUrl)'''</span></span></code>  – this calls the static method QRImage on class ZXing, stating that the QRCode should be 300×300 pixels. For this to be permissible in OCL, we must have the QRImage method marked as IsQuery.


In the application (a returns and reclamation system) where this was used first we added a derived attribute like so:
== From 2020-02-09, You Can Also Create EAN13 Barcodes. ==
QRCode: Blob , DerivationOcl = ZXing.QRImage(300,300,’<nowiki>https://reklamation.azurewebsites.net/MDriven/DisplayWithVariables?view=TestQRCodeFromVariable&id=$null$&vLopnummer=’+self.Lopnummer.asstring</nowiki>)
To make an EAN13 barcode, you need a string of 12-numbers between 0-9, and the last 13th checksum digit will be added - or a 13-numbers string where the last digit is the correct checksum.
Let me explain the Ocl a bit:


ZXing.QRImage(300,300, theUrl)  – this calls the static method QRImage on class ZXing, stating that the QRCode should be 300×300 pixels – in order for this to be legal in Ocl we must have the QRImage method marked as IsQuery.
In the ZXing class, add a method just like the QRImage above but call it BarcodeImage.
[[File:2020-02-09 14h24 57.png|none|thumb|904x904px]]Using it in a ViewModel:
[[File:2020-02-09 14h28 51.png|none|thumb|811x811px]]
will give you this result:
[[File:2020-02-09 14h34 15.png|none|thumb|662x662px]]
[[Category:MDriven Turnkey]]
{{Edited|July|12|2025}}

Latest revision as of 04:58, 20 February 2025

This page was created by Hans.karlsen@mdriven.net on 2018-07-29. Last edited by Stephanie@mdriven.net on 2025-02-20.

Follow this pattern to get the functionality to generate QR codes in Turnkey:

(Please note: this does not work in a serverside job.)

2018-07-29 12h32 21.png

Add a class ZXing (this is the open-source QR-code library we use, credit goes to everyone involved in that).

Add a static method with this signature QRImage(width:Integer; height:Integer; value:String):Image – and then you have access.

In the application (a returns and reclamation system) where this was first used, we added a derived attribute like this:

QRCode: Blob , DerivationOcl = ZXing.QRImage(300,300,’https://reklamation.azurewebsites.net/MDriven/DisplayWithVariables?view=TestQRCodeFromVariable&id=$null$&vLopnummer=’+self.Lopnummer.asstring)
The Method must be marked with Tagged Value : Eco.ExternalLateBound = AnyValue

Let me explain the OCL a bit:

ZXing.QRImage(300,300, theUrl)  – this calls the static method QRImage on class ZXing, stating that the QRCode should be 300×300 pixels. For this to be permissible in OCL, we must have the QRImage method marked as IsQuery.

From 2020-02-09, You Can Also Create EAN13 Barcodes.

To make an EAN13 barcode, you need a string of 12-numbers between 0-9, and the last 13th checksum digit will be added - or a 13-numbers string where the last digit is the correct checksum.

In the ZXing class, add a method just like the QRImage above but call it BarcodeImage.

2020-02-09 14h24 57.png

Using it in a ViewModel:

2020-02-09 14h28 51.png

will give you this result:

2020-02-09 14h34 15.png