※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。
最新のintra-martでは、異なる情報であることがありますので、ご注意ください。
最近、SuperVisualFormade(以下SVF)との連携を要望されるお客様が増えてまいりま した。このコラムでは、intra-martベースモジュール/フレームワークとSVFとの連携方法について詳述いたします(J2EE開発モデルでの連携方法です)。
(1)SVFの概要
図のようにユーザAPIからSVFAPI経由でSVFを呼び出します。
(2)SVF機能一覧
以下にSVFを利用する際の機能一覧を記します。
(3)コーディング例
JAVAサンプルプログラム(クエリー使用)
package servlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import jp.co.fit.vfreport.*; //SVF for WEB パッケージのインポート public class Servlet_Sample extends HttpServlet{ static Vrw32 svf = new Vrw32(); //PDF生成クラスのインスタンス生成 static int ret; //グローバル変数の初期化 public void init(ServletConfig config)throws ServletException{ super.init(config); //HTTP Post リクエストの処理 } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{ PrintWriter out = new PrintWriter(response.getOutputStream()); response.setContentType("text/html"); ret = svf.Vrinit(); //クラスの初期化 ret = svf.VrSetDocName2("レポートライターサンプル1"); //PDFファイルのドキュメント名の設定 ret = svf.VrSetSpoolFileName2("D:\\demo\\sample.pdf"); //PDFファイル名の設定 ret = svf.VrSetForm("Sample.frm",5); //SVFで設計したフォームの設定/ ret = svf.VrSetQuery("UID=scott;PWD=tiger","D:\\servlet\\Sample.vrq",0); // クエリーファイルの設定 ret = svf.VrCondition("DEPTNO=10",0); //クエリーの条件(Where句)の設定/ ret = svf.VrReport(); //クエリーの実行 ret = svf.VrPrint(); //PDFファイルの出力 ret = svf.VrQuit(); //PDFファイル出力処理終了 out.println("<html><body leftmargin=0 topmargin=0 scroll=no>) <embed width=100% height=100% fullscreen=yes src=\"http://10.15.20.105/DEMO/sample.pdf\"></body></html>"); //作成されたPDFファイルをブラウザに表示 out.close(); } } |
JAVAサンプルプログラム(アプリケーション側で データ抽出の場合)
package servlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import jp.co.fit.vfreport.*; //SVF for WEB パッケージのインポート public class Servlet_Sample2 extends HttpServlet{ static Vrw32 svf = new Vrw32(); //PDF生成クラスのインスタンス生成 static int ret; //グローバル変数の初期化 public void init(ServletConfig config)throws ServletException{ super.init(config); //HTTP Post リクエストの処理 } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{ PrintWriter out = new PrintWriter(response.getOutputStream()); response.setContentType("text/html"); ret = svf.Vrinit(); //クラスの初期化 ret = svf.VrSetDocName2("レポートライターサンプル1"); //PDFファイルのドキュメント名の設定 ret = svf.VrSetSpoolFileName2("D:\\demo\sample.pdf"); //PDFファイル名の設定 ret = svf.VrSetForm("Sample.frm",4); //SVFで設計したフォームの設定/ ret = svf.VrsOut("DEPTNO","10" ); //フィールドにデータを貼り付け ret = svf.VrsOut("DNAME","SALES" ); ret = svf.VrsOut("LOC" ,"CHICAGO"); ret = svf.VrsOut("EMPNO","7844" ); ret = svf.VrEndRecord(); //レコードの出力 ret = svf.VrPrint(); //PDFファイルの出力 ret = svf.VrQuit(); //PDFファイル出力処理終了 (PDFファイルが生成される) out.println("<html><body leftmargin=0 topmargin=0 scroll=no>) <embed width=100% height=100% fullscreen=yes src=\"http://10.15.20.105/DEMO/sample.pdf\"></body></html>"); //作成されたPDFファイルをブラウザに表示 out.close(); } } |
JAVAサンプルプログラム (PDFファイルを作らない方法)
package servlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import jp.co.fit.vfreport.*; //SVF for WEB パッケージのインポート public class Servlet_Sample2 extends HttpServlet{ static Vrw32 svf = new Vrw32(); //PDF生成クラスのインスタンス生成 static int ret; //グローバル変数の初期化 public void init(ServletConfig config)throws ServletException{ super.init(config); //HTTP Post リクエストの処理 } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{ PrintWriter out = new PrintWriter(response.getOutputStream()); response.setContentType("application/pdf"); OutputStream os = response.getOutputStram();
ret = svf.Vrinit(); //クラスの初期化 ret = svf.VrSetDocName2("レポートライターサンプル1"); //PDFファイルのドキュメント名の設定 ret = svf.VrSetSpoolFileStream(os); //PDFファイルをメモリー出力の設定 ret = svf.VrSetForm("Sample.frm",4); //SVFで設計したフォームの設定 ret = svf.VrsOut("DEPTNO","10" ); //フィールドにデータを貼り付け ret = svf.VrsOut("DNAME","SALES" ); ret = svf.VrsOut("LOC" ,"CHICAGO"); ret = svf.VrsOut("EMPNO","7844" ); ret = svf.VrEndRecord(); //レコードの出力 ret = svf.VrPrint(); //PDFファイルの出力 ret = svf.VrQuit(); //PDFファイル出力処理終了
os.close(); //作成されたPDFファイルをブラウザに表示 } }
|
以上を参考に連携プログラムを作成してみてください。
ちなみにページベース開発モデルのJavaScriptからはLiveConect(Java呼び出し)を使えばできます。
SVFの提供しているのはJAVAのAPIのみなので、JavaScriptのAPIとして使いたい場合は、こちらでSVFのJAVAのAPIをラップし て、JavaScriptのAPIを作ってあげる必要があります。
以上