QrCode é com certeza uma grande evolução na questão da geração de códigos de barras com alta capacidade de carga da informação, ou seja, que ultrapassam a necessidade de geração de simples números e códigos, pois o modelo trabalha em duas dimensões, ou seja, possui uma enorme capacidade de armazenamento (4Kb) e em um tamanho que pode ser significativamente reduzido, se comparado às fontes barcode tradicionais.
Esse é um recurso bem interessante para utilizarmos nos projetos GeneXus, e é o que faremos a seguir, com um pequeno projeto com o objetivo de armazenar informação num formato JSON em uma imagem QrCode.
SDT
O primeiro elemento que necessitamos para produzir um QrCode é informação, e o objeto Structured Data Type é um bom elemento para organizar e agrupar informações. A seguir apresentamos um pequeno exemplo de um SDT que armazena Código, Descrição, DataRecebimento e DataValidade de certo produto.
E em seguida podemos programar uma variável do tipo
SDT, que armazene os diversos campos criados no SDT.
&codigo.Codigo = 1222333222
&codigo.Descricao = 'Mesa Executiva'
&codigo.DataValidade =
#2020-10-02#
&codigo.DataRecebimento =
#2012-10-02#
Gerando o QrCode
E em seguida um comando que chama um gerador de QrCodes da própria Artech, ou seja, aquele utilizado para gerar os QrCodes para instalação de aplicações Android e Blackberry no GeneXus Ev2. Observe que na chamada ao serviço já informamos qual o valor da imagem que o mesmo deverá produzir por meio do conteúdo em formato Texto.
A operação é realizada em duas etapas, a geração da imagem do QrCode por meio do agetqrcode e em seguida a carga dessa imagem em uma variável &qrcode do tipo Image.
As variáveis criadas nesse código são:
Resultado
Essa variável pode ser incluída em qualquer interface Web ou Report, produzindo um resultado semelhante a imagem apresentada a seguir.
E em seguida um comando que chama um gerador de QrCodes da própria Artech, ou seja, aquele utilizado para gerar os QrCodes para instalação de aplicações Android e Blackberry no GeneXus Ev2. Observe que na chamada ao serviço já informamos qual o valor da imagem que o mesmo deverá produzir por meio do conteúdo em formato Texto.
&linkqr = link('http://sdx.genexus.com/agetqrcode.aspx', &codigo.ToJson())
&qrcode = loadbitmap(&linkqr)
A operação é realizada em duas etapas, a geração da imagem do QrCode por meio do agetqrcode e em seguida a carga dessa imagem em uma variável &qrcode do tipo Image.
As variáveis criadas nesse código são:
Resultado
Essa variável pode ser incluída em qualquer interface Web ou Report, produzindo um resultado semelhante a imagem apresentada a seguir.
Essa mesma imagem pode ser incluida em um PrintBlock de relatório produzindo o QrCode de forma impressa.
Interessante e simples, assim como a criatividade das pessoas que estão explorando essa imagem para produzir arte visua: http://mashable.com/2011/07/23/creative-qr-codes/
E para conhecer um pouco mais, ai vai a dica:
E para conhecer um pouco mais, ai vai a dica: