JRubyとSVFの連携
JRubyはJavaによるRuby実装です。JVM上で動作するJRubyはJavaのクラスファイルへ簡単にアクセスすることが可能です。ここではJRubyからSVFの印刷機能を利用するための方法を説明します。
JRubyからJavaAPIの呼び出しサンプル
■Sample.rb
Sample.rbはSVFマニュアルのサンプルを参考にしています。
require "svf"
include Java
import jp.co.fit.vfreport.Vrw32
svf = Vrw32.new
ret = svf.VrSetLocale("ja")
ret = svf.VrInit
ret = svf.VrSetPrinter("","プリンター名")
ret = svf.VrSetForm("様式ファイル", 4)
ret = svf.VrsOut("発行年月日", "2005/12/8 00000")
ret = svf.VrsOut("発注番号", "1000476");
ret = svf.VrEndRecord
ret = svf.VrPrint
ret = svf.VrQuit
設定と実行
■クラスパスの設定
APIを利用するために必要となるsvf.jarファイルをCLASSPATHに追加します。
Windows > set CLASSPATH=c:\SVFJP\svfjpd\lib\svf.jar
- svf.jarはSVFのインストールディレクトリにあるものを直接指定してください。
■実行
Windows > jruby sample.rb
Sample.rbコード解説
■宣言
svf.jarファイルをロードします。requireの引数として与える文字列は"svf"でも"svf.jar"でもどちらでも問題ありません。requireメソッドは拡張子を自動的に補完します。LoadErrorが発生した場合は、CLASSPATHの設定を確認してください。
require "svf"
Javaモジュールをインクルードします。 標準Javaライブラリへアクセスが可能となります。
include Java
Vrw32クラスをインポートします。Javaと同様です。
import jp.co.fit.vfreport.Vrw32
■Vrw32の生成と初期化
Vrw32オブジェクトを生成し属性を設定します。基本的な手順はJavaと同様です。
svf = Vrw32.new
ret = svf.VrSetLocale("ja")
ret = svf.VrInit
ret = svf.VrSetPrinter("","プリンター名")
ret = svf.VrSetForm("様式ファイル", 4)
- Vrw32.new()と記述しても問題ありませんが、()は必須ではありません。
- 文の区切りは改行です。
- 変数に型宣言は必要ありません。
■データの入力
ret = svf.VrsOut("発行年月日", "2005/12/8 00000")
ret = svf.VrsOut("発注番号", "1000476");
.......
■クローズ処理と印刷
ret = svf.VrEndRecord ret = svf.VrPrint ret = svf.VrQuit

