帳票カスタマイズ メモ

■C共有ライブラリのコンパイルコマンド

$ gcc -shared -o wrapper.so -lpng -lqrencode wrapper.c

■libqrencodeについて

あらかじめコンパイル、インストールしておく。
/usr/local/lib/
/usr/local/include/
に配置されていることを確認

■.soのパーミッション等について

所有者 orca:orca
権限  644

■.soの配置場所について

/usr/lib/jma-receipt/site-lib/

■Cプログラムについて

プログラム名と同じ名称のメソッドを用意する。
※mainメソッドではだめ。

COBOLからCALLするときは、上記のメソッド名(PG名)を指定する。

■DB取得項目の探し方

・monpeを起動
・monpeで対象項目のフィールド名を調べる
・.CBLで上記フィールドにMOVEしている箇所を見つける
・MOVE元の変数を特定してcoblogでログ出力等で内容確認

COBOL→CでQR文字列を作る流れ

[COBOL]
・データ定義する。その際、「\0」セットの為、各フィールドは余裕をもたした桁数にする。(DUMMYのエリアを設けるなど)
・CALLで上記データ定義の各フィールドをCへ渡す。

[C]
COBOLから受け取った引数に対して以下の各処理を行う。
 ・適当な位置で「\0」をセット
 ・trim関数を作って、トリミング
 ・生成した各値をsprintfでURL文字列連結
 ・QRcodeオブジェクトを生成
 ・生成した各値をsprintfでQRPNGファイルパス文字列連結
 ・memcpyでファイルパス変数にセット(COBOL側で参照できるように)
 ・writePNGでQRイメージを作成

COBOL内での、QRイメージ作成処理の実行箇所

帳票編集処理(300-HC03-HEN-SEC)内、

入金金額(WRK-Z72)計算処理終了後、
monpeファイル(.red)の転記処理前に、

QR生成セクション
・印刷用データ定義へのQRファイルパス転記

を行う。
以下のような記述で処理実行。

PERFORM 400-QR-CREATE-SEC
MOVE QR-FILE-PATH TO HC03-QR


■帳票印刷後、QRイメージPNGファイルの削除方法

帳票印刷開始処理の「400-SYOKI-PRINT-SEC」内の、
HC01PARA-FORM-IDへ、「HC2Q」を転記する。
これにより、/usr/lib/jma-receipt/scripts/daily/HC01.sh が処理終了後にPNGを削除してくれる。