開発Blog

SVF(SuperVisualFormade)とintra-martの連携について

投稿日:


※下記内容は、過去の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を作ってあげる必要があります。

以上

-開発Blog
-

執筆者:

関連記事

no image

intra-mart WebPlatform/AppFramework Ver7.2について その5

今回で、iWP Ver7.2の紹介は、最終回です。 ■開発系 ドラッグ&ドロップによるファイルアップロード用タグ intra-mart WebPlatform/AppFramework Ver …

no image

アクセスセキュリティモジュール(ログイン画面)を利用しないでアプリケーションを構築する方法

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 ※以下はAPIリストからの抜粋です。 …

no image

安定稼動のTips

  ※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。   現在まで …

no image

IM-Workflowで承認時にも認証を行う方法

IM-Workflowでは、本当に本人が申請・承認しているかを証明するための仕組みとして、「認証確認(再認証)」を設定することができます。 この仕組みを利用すると、ワークフローの申請・承認を行うタイミ …

no image

e Builder Application Producer v7.2での開発方法について

本日、「intra-mart e Builder Application Producer (以下 Application Producer と略記)」をリリースさせて頂きました。Applicatio …