TenArtni Ninja-VA

Similar documents
WebReportCafe

WebReportCafe

Android Layout SDK プログラミング マニュアル

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

PowerPoint プレゼンテーション

メディプロ1 Javaサーブレット補足資料.ppt

PowerPoint プレゼンテーション

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

オブジェクト指向プログラミング・同演習 5月21日演習課題

--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S

intra-mart WebPlatform/AppFramework

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Prog1_13th

PowerPoint プレゼンテーション

プログラミング入門1

SpringSecurity

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

Microsoft Word - Android_SQLite講座_画面800×1280

intra-mart im-JavaEE Framework

JavaプログラミングⅠ

intra-mart im-J2EE Framework

GEC-Java

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Microsoft PowerPoint - Lecture_3

第2回講義

スライド 1

JavaプログラミングⅠ

JAVA入門

TestDesign for Web

データアダプタ概要


ガイダンス

PowerPoint Presentation

プログラミング基礎I(再)

Microsoft PowerPoint ppt

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Prog1_6th

PowerPoint Presentation

ガイダンス

Prog1_15th

PowerPoint プレゼンテーション

2

Microsoft PowerPoint - prog13.ppt

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

Microsoft PowerPoint - prog13.ppt

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Microsoft PowerPoint - prog03.ppt

情報実習Ⅱ

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java言語 第1回

FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

WebOTXマニュアル

Microsoft PowerPoint - OOP.pptx

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

WebReportCafe for .NET

Prog1_10th

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

Javaプログラムの実行手順

Q&A集

PowerPoint プレゼンテーション

WebReportCafe

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

人工知能入門

第二回独習 Java ゼミ 第二章クラスとメソッド 2.1 メソッドの構造 2.2 静的メソッドと静的変数の概要 2.3 インスタンスメソッドとインスタンス変数の概要 2.4 Integerクラス 2006/04/19 神津健太

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft Word - Android_SQLite講座_画面800×1280

Java知識テスト問題

Microsoft PowerPoint - OOP.pptx

HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

基本情報STEP UP演習Java対策

PowerPoint Presentation

Prog2_12th

storage-sdk-Java

ファイル操作-バイナリファイル

JAVA とテンプレート

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

メソッドのまとめ

Apache ActiveMQ における認証処理不備の脆弱性

JEB Plugin 開発チュートリアル 第4回

JavaプログラミングⅠ

IM-PDFDirectPrint for Accel Platform — プログラミングガイド   第5版  

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

PowerPoint Presentation

ObjectPartner Pro

Prog1_3rd

プログラミング入門1

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

問題1 以下に示すプログラムは、次の処理をするプログラムである

はじめに インフォマート API の呼び出しには OAuth2.0 による認証を受ける必要があります OAuth2.0 を使うことで インフォマート API を利用するサービスは インフォマートプラットフォーム ID( 1 以下 PFID) とパスワードを保存したり処理したりすることなく PFID

Seasar.NET入門

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

1: アプリの概要 小さなウェブアプリアプリです 15 店舗の売店 飲食店の売上集計 管理システム 各店舗が CSV 形式になっている売店のレジデータを本社にアップロードする 1 日 1 回 毎日アップロードされるデータを集計し 約 10 帳票の管理資料を作成する 管理資料はエクセルシートに出力する

プログラミング入門1

Transcription:

Ninja-VA with WebReportCafe の巻 サイオステクノロジー株式会社

Ninja-VA with WebReportCafe 概要 このドキュメントでは Ninja-VAの姉妹製品である 帳票作成ソフト WebReportCafe Engine との連携方法についてご説明します WebReportCafe Engine は帳票を出力するためのライブラリ製品です WebReportCafe Designer で作成した帳票の雛形である帳票フォームと データを組み合わせて帳票を作成できます 帳票を PDF ファイル形式で出力したり 直接プリンタへ印刷処理を投げたりすることができます DataTableWrapper クラスの説明 DataTableWrapper とは Ninja-VA ではデータの行の集合を扱う際 com.tenartni.ninjava.data.datatable クラス ( 以下 DataTable) を使用します 一方 WebReportCafe では jp.co.tenartni.data.xrowset( 以下 XRowSet) を使用します よって Ninja-VA で取得したデータを WebReportCafe で使用する場合は DataTable を XRowSet に変換する必要があります com.tenartni.ninjava.data.wrc.datatablewrapper クラス ( 以下 DataTableWrapper) は DataTable オブジェクトを包含し XRowSet のように振舞うラッパークラスです Ninja-VA で WebReportCafe を使用する場合はこのクラスを使用します DataTableWrapper のコンストラクタに アクティブ状態の DataTable オブジェクトを引数として渡すだけで使用できます 使用方法は 下記のサンプルプログラムと共に解説します

シンプル PDF 作成サンプルプログラム サンプルの概要 まず簡単な PDF を作成する サンプルをご紹介します 下図のような 一つの DataTable から生成できる PDF の生成処理 を実装します

サンプルプログラム解説 PDF 生成の処理プログラムは下記のようになります public classproductlistpdfswo extends SmartWebObject { public DBActionTable productlisttable= new DBActionTable(); public ProductListPDFSWO() { public void firstinitialize() throws Exception { super.firstinitialize(); public void initialize(httpservletrequest request, HttpServletResponse response) throws java.lang.exception { super.initialize(request, response); public void doprintaction(httpservletrequest request, HttpServletResponse response, WebAction action)throws Exception{ String header = "inline;"; header += "filename=\"productlist.pdf\""; if (!header.equals("")){ response.setheader("content-disposition", header); response.setcontenttype("application/pdf"); 1 OutputStream outputstream = response.getoutputstream(); 2 XReport xreport = new XReport(); InputStream stream = WrcSampleSWO.class.getResourceAsStream("/sample/report/product_list.xml"); xreport.loadproperty(stream); 3 productlisttable.setactive(true); DataTableWrapper rowset = new DataTableWrapper(productListTable); xreport.setrowset(rowset); 4 xreport.createpdf(outputstream); 5 outputstream.close(); outputstream = null; this.setstopresponse(true); 6 上記のサンプルプログラムの要点を プログラムに振られた番号を元に解説していきます 1PDF をブラウザに出力するために コンテントタイプやファイル名を指定します 2 出力用の OutputStream を HttpServletRespose オブジェクトから取得します 3WebReportCafe Engine のクラスである XReport を初期化しています 4 帳票作成用のデータを取得するために DataTable をアクティブ化し 前述の DataTableWrapper を作成し XReport オブジェクトに設定します 5 2で取得した OutputStream を指定して PDF の生成メソッドを呼び出します このメソッドを呼び出すことにより OutputStream に PDF データを出力します 6StopResponse を呼び出し これ以降 Ninja-VA による Response 書き出しを行わない事を明示します

サブレポートを使用する場合 サンプルの概要 続いて 入れ子のデータがある 少し複雑な帳票を印刷するサンプルをご紹介します データと明細データがあるような下記の帳票を 親子関係のある複数のデータを使用して作成することができます メインレポート サブレポート WebReportCafe では 親のデータを扱う部分をメインレポート 子供のデータを扱う部分をサブレポートといいます

TableRelation について サブレポートを使用する場合 メインレポートに設定する親データと サブレポートに設定する子データが 関連付けられて いる必要があります 帳票作成に使用する複数の DataTable を TableRalation を使用してリレーションを作成してください サンプルプログラム解説 サブレポートを含む帳票印刷のサンプルプログラムは下記のようになります public void doprintreportbtnaction(httpservletrequest request, HttpServletResponse response, WebAction action) throws Exception { XReport xreport = new XReport(); InputStream stream = EstimateListSWO.class.getResourceAsStream("/sample/report/estimate_list.xml"); xreport.loadproperty(stream); estimatelisttable.setactive(true); estimateproducttable.setactive(true); DataTableWrapper mainrowset = new DataTableWrapper(estimateListTable); DataTableWrapper subrowset = new DataTableWrapper(estimateProductTable); 1 2 tablerelation.setenabled(true); 3 xreport.setrowset(mainrowset); 4 SubReportSection subreport = (SubReportSection)xreport.getSectionByName("SubReportSection1"); subreport.setrowset(subrowset); 5 DirectPrint directprint = new DirectPrint(xreport); String printername = DirectPrint.getDefaultPrinterName(); directprint.setprintername(printername); 6 directprint.print(); 7 上記のサンプルプログラムの要点を プログラムに振られた番号を元に解説していきます 1WebReportCafe Engine のクラスである XReport を初期化しています 2メインレポートで使用するデータと サブレポートで使用するデータの DataTable をアクティブにし それぞれに対する DataTableWrapper オブジェクトを作成します 3TableRalation をアクティブにし 関連付けを有効にします 4メインレポートに DataTableWrapper を設定します

5サブレポートに DataTableWrapper を設定します WebReportCafe Designer でサブレポートにつけた名前で サブレポートオブジェクトを抜き出し DataTableWrapper を設定しています 6 印刷オブジェクトを初期化しています 7 印刷処理を実行しています 帳票設計時に SQL を取得する方法 Ninja-VA から 帳票設計時に設定した SQL を取得することもできます 帳票設計時に設定した SQL にアクセスするサンプルプログラムには下記のようになります public class ProductListPDFDownloder extends SmartWebObject { public DBActionTable productlisttable = new DBActionTable(); public ProductListPDFDownloder() { public void initialize(httpservletrequest request, HttpServletResponse response) throws java.lang.exception { super.initialize(request, response); public void printdownloaddata(httpservletrequest request, HttpServletResponse response,webaction action) { String header = "inline;"; header += "filename=\"productlist.pdf\""; if (!header.equals("")){ response.setheader("content-disposition", header); response.setcontenttype("application/pdf"); OutputStream outputstream = response.getoutputstream(); XReport xreport = new XReport(); InputStream stream = ProductListSWO.class.getResourceAsStream("/sample/report/product_list.xml"); xreport.loadproperty(stream); productlisttable.setactive(false) String sql = xreport.getsql(); productlisttable.setsql(sql); 1 productlisttable.getparams().getfield("product_code").settype(datafield.type.string); 2 productlisttable.getparams().setstring("product_code", productidmap.getstring("product_code")); 3 productlisttable.setactive(true); DataTableWrapper rowset = new DataTableWrapper(productListTable); xreport.setrowset(rowset); xreport.createpdf(outputstream); outputstream.close(); outputstream = null; this.setstopresponse(true); 1XReport クラスの getsql メソッドで 帳票設計時に設定した SQL を取得することができます また DBActionTable の setsql メソッドで 取得した SQL を設定することにより 帳票設計時に設定した SQL を利用することができます DBActionTable に SQL を設定する際は Active 状態が false である必要があります SQL を設定する前に setactive(false) を実行してください

2 設定した SQL に含まれているパラメータの型を設定します SQL を設定する際 パラメータは自動的に追加されますが 型は設定されません 自動で追加されたパラメータを使用する際には 型を設定する必要があります DBActionTable の getparams() メソッドでパラメータの DataFields を取得し getfield メソッドで引数に指定した名称の DataField を取得します さらに 取得した DataField オブジェクトの settype メソッドを呼び出すことでパラメータの型を設定することができます 3パラメータに値を設定しています ここでは DataMap オブジェクトの productidmap からユーザから入力された値を取得して DBActionTable の値にデータを設定しています まとめ DataTableWrapper クラスを使用することで Ninja-VA の DataTable を WebReportCafe で使用できる XRowSet に変換し Ninja-VA から PDF 作成や 印刷を簡単に行うことができます Ninja-VA で PDF や帳票印刷を行う必要がある場合は ぜひ WebReportCafe の採用をご検討ください