logo

サイト内検索
ココログ最強検索 by 暴想

最近のトラックバック

無料ブログはココログ

« 2014年3月 | トップページ | 2015年10月 »

2014年9月

Reports Connect for Salesforce / for kintone QRコードの出力

Reports Connect for SalesforceReportsconnect for kintoneで、QRコードの出力がサポートされました。今回はその方法について解説します。

例として、出力する帳票はReports Connect for Salesforce 標準画面からの印刷呼び出し方法で使用した見積書を使用します。

まず、iReportで該当のjrxmlファイルを開きます。今回はヘッダー部分に、顧客名をQRコード化したものを出力する事にします。

まず、パレットからImageを選択してヘッダーにドラッグ・アンド・ドロップします。

20140924_14h02_17
Imageのプロパティで、Expression Classを「java.awt.Image」に設定します。

20140924_14h06_43
さらに、Imageのプロパティで、Image Expressionを以下のように設定します

com.google.zxing.client.j2se.MatrixToImageWriter.toBufferedImage(
     new com.google.zxing.qrcode.QRCodeWriter().encode(
      $F{Opportunity.Account.Name},
         com.google.zxing.BarcodeFormat.QR_CODE, 300, 300,
     com.google.common.collect.ImmutableMap.of(
         com.google.zxing.EncodeHintType.CHARACTER_SET,"UTF-8"))
)

20140924_14h08_43
ここで、Image Expressionに指定したコードに関して若干補足します。

Reportsconnectでは、QRコード出力にGoogleのZXingというライブラリーを使用しています。
ここの記述では、ZXingのクラスQRCodeWriterのencodeメソッドで、QRコードを作成しています。
encodeメソッドの引数は、

contents - The contents to encode in the barcode
format - The barcode format to generate
width - The preferred width in pixels
height - The preferred height in pixels
hints - Additional parameters to supply to the encoder

となっています。

少々、長い記述で、複雑そうですが、重要なのはcontentsがエンコードする文字列で、あとはwidthとheightで大きさを決めてやれば、それ以外は上記コードをコピペするだけでOKです。
この例では、contentsに顧客の名前のフィールドを設定し、顧客名をQRコード化しています。

なお、蛇足ながら、引数のhintsはパラメーターのMapを引き渡す様になっていて、
EncodeHintType.CHARACTER_SETに対して"UTF-8"を指定したMapを生成して渡しています。
ちなみに、

 com.google.common.collect.ImmutableMap.of(xxxx)

の部分は、パラメーターのMapの生成にGoogleのGuavaというライブラリーのImmutableMapを使用しています。

このように、iReportでImageを用いて簡単にQRコードを出力することが出来ます。

« 2014年3月 | トップページ | 2015年10月 »