• 検索結果がありません。

101NEO資料

N/A
N/A
Protected

Academic year: 2021

シェア "101NEO資料"

Copied!
11
0
0

読み込み中.... (全文を見る)

全文

(1)

株式会社ワン・オー・ワン

チュートリアル

Version 1.5

Note:

コピー並びに配布厳禁

(2)

目次

概要... 1 1. PDF を利用した帳票出力 ... 2 1-1. 概要 ... 2 1-2. PDF ファイルの準備 ... 2 1-3. プロジェクトの編集 ... 4 1-4. HTML の修正 ... 4 1-5. インタラクティブな PDF の表示... 5 1-6. 動作確認... 7 1-7. 文字化けの対応 ... 8

Copyright © 2004 101 Co., Ltd. All Rights Reserved.

(3)

概要

このチュートリアルでは、101NEO Studioの基本的な使い方、機能等について理解された方 を対象としております。 具体的には、チュートリアル 第1部および第2部を実施している方を対象としており、このチ ュートリアルでは、第2部にPDFを利用した機能を追加します。 1-1-1. システム要件 チュートリアル 第2部をすべて確認するためには次のシステム、設定が必要です。 • • • • • • • JDBC対応データベース(説明ではOracleを使用) 使用するデータベースにあわせた101NEO Studioのクラスパス設定 メールサーバー(3章にて使用)

Java Mail (mail.jar) と JFA (activation.jar) 及びクラスパス設定 WebブラウザでCookieをブロックしない設定(セッション管理で使用) 上記にあわせて、このチュートリアルでは次のシステム(製品)が必要です。 Adobe Acrobat (PDFフォームを設定したPDFファイルを作成する場合) PDFフォーム作成の可能な製品版のAcrobatが必要です。ですのでAcrobat6.0 の場合 は Professionalが必要になります。この文書ではAcrobat5.0を使用しております。 インターネットにアクセス可能な環境 (PDFファイルをローカルに持たない場合)

(4)

1. PDFを利用した帳票出力

1-1. 概要

101NEOでは、PDFと連携してインタラクティブな文書を作成することが可能です。 チュートリアル 第2部の「4-4. 注文データ確認アプリケーション」にPDFでの帳票出力を追 加します。 Adobe Acrobatのフォーム機能を使用するとPDF内に入力領域やチェックボックス、ボタンな どを配置したテンプレートが作成できます。そのテンプレートPDFに101NEOを使って動的に 値を設定する方法を説明します。 この機能を活用することで、データ毎にPDFを作成する必要がなくなり、帳票が必要なシス テム等では効率良くリソースを使用することが可能になります。

1-2. PDFファイルの準備

帳票用のPDFファイルを準備します。インターネット上のPDFファイルをそのまま利用する場 合には、こちらのステップは必要ありません。 1-2-1. PDFの作成 PDFファイルの作成はいろいろな方法がありますが、ここではAcrobat 5.0を使用してExcelか らPDFを作成します。 図 1-1. Excelでの帳票作成 上図のような帳票イメージをExcel上で作成し、「Adobe PDFへの変換」ボタン をクリックします。 「PDFファイルに名前をつけて保存」ダイアログが表示されますので、任意のファイル名にて 保存してください。

Copyright © 2004 101 Co., Ltd. All Rights Reserved.

(5)

1-2-2. PDFフォームの作成

「1-2-1」で作成したPDFファイルをAcrobatで開きます。

図 1-2. PDFファイル

フォームツールにて下記のようなPDFフォームを作成し、保存します。

図 1-3. PDFフォームの作成

Note:

PDF フォームの作成方法について詳しくは Adobe Acrobat のマニ

ュアル等を参照してください。

(6)

1-3. プロジェクトの編集

1-3-1. 「ContentTextType」プロパティーの設定 プロジェクトの詳細設定ダイアログにて「ContentTextType」プロパティーに 「Application/vnd.fdf」を設定します。 図 1-4. プロジェクトの詳細設定ダイアログ

1-4. HTMLの修正

1-4-1. 注文明細のページ (orderdetail.html) 注文明細の下部にPDFファイルを表示するためのリンク(<A>タグ)を追加します。 <html> <head> <title>チュートリアル 第2部</title>

<link rel="stylesheet" type="text/css" href="/tutorial.css"> </head>

<body>

<table cellspacing="0" cellpading="1" align="center" width="50%"> <tr><td class="table_title">注文詳細 [@注文番号]</td></tr> <tr><td> <table class="list"> <tr> <th class="list">明細番号</th> <th class="list">商品コード</th> <th class="list">メーカー</th>

Copyright © 2004 101 Co., Ltd. All Rights Reserved.

(7)

<th class="list">商品名</th> <th class="list">注文数</th> <th class="list">金額</th> </tr> <!-- %repeat --> <tr> <td class="list" align="center">@行番号</td> <td class="list">@商品コード</td> <td class="list">@メーカー</td> <td class="list">@商品名</td> <td class="list" align="center">@注文数</td> <td class="list" align="right">¥@金額</td> </tr> <!-- %end --> <tr> <th class="list" colspan="5">合計金額</th> <td class="list" align="right">¥@合計金額</td> </tr> </table> </td></tr> <tr><td>&nbsp;</td></tr> <tr><td>

<a href="@WEBAPP?nextpage=orderlist.html">注文一覧に戻る</a> </td></tr>

<tr><td>

<a href="@WEBAPP?nextpage=pdfview.html&id=@注文番号">PDFでの表示</a> </td></tr> </table> </body> </html>

1-5. インタラクティブなPDFの表示

1-5-1. インタラクティブなPDF表示のHTMLファイル (pdfview.html)

FDF(Form Data Format)データとしてレスポンスするためにメディアタイプ(データタイプ)を指 定します。 101NEOにてレスポンスのメディアタイプを指定するには %content-type を使用します。こ のコマンドによりMIME形式の content-type が設定されます。 指定しなかった場合には「text/html」としてレスポンスされます。 <!-- %content-type application/vnd.fdf --> %FDF-1.2 1 0 obj << /FDF << /Fields [ << /V (@注文日時)/T (orderdate)>> <!-- %repeat -->

<< /V (@idx)/T (no@idx)>>

<< /V (@商品コード)/T (code@idx)>> << /V (@メーカー)/T (maker@idx)>> << /V (@商品名)/T (name@idx)>> << /V (@注文数)/T (num@idx)>> << /V (@金額)/T (price@idx)>>

(8)

<!-- %end --> ]

/Encoding /Shift-JIS /F (http://www.101s.co.jp/pdf/order.pdf) >> >> endobj trailer << /Root 1 0 R >> %%EOF FDFでは「小計」、「消費税」、「合計金額」を設定していません。今回用意したPDFにて各値 を自動計算するように設定しています。自動計算に詳細はAcrobatのマニュアルを参照して ください。 FDFでは、/FオプションにてPDFファイルを指定します。例では、弊社サイトのPDFファイルを テンプレートとして使用するように記述しておりますが、同ファイルをダウンロードしローカル のPDFファイルを使用することも可能です。 例えば、101NEO Studioでは、HTMLファイルのフォルダにPDFファイルを配置した場合、次 のように指定することでローカルのPDFファイルをテンプレートとして使用するようになりま す。 /F (http://localhost:8888/order.pdf) 1-5-2. PDF表示用の仕様定義書 (pdfview.spj) FDFデータで使用される変数を設定します。 内容的にはHTMLデータとしてレスポンスするロジックと同様です。 [reference] 注文日時 = $注文日時 idx = $行番号 商品コード = $商品コード メーカー = $メーカー 商品名 = $商品名 注文数 = $注文数 金額 = $金額 [init_page] local(sql, rs) call ReplaceMarker(sql, "select 行番号, o.商品コード, 商品名, メーカー, 注文数, 金額 from 注文明細 o, 商品マスター m where 注文番号 = ?id and o.商品コード = m.商品コード order by 行番号" )

call QuerySQL(rs, oracle, $sql)

local(行番号, 商品コード, 商品名, メーカー, 注文数, 金額) call SQLResultRowArray(rs, 1, 0,

行番号, 商品コード, 商品名, メーカー, 注文数, 金額) call ReplaceMarker(sql,

"select to_char(注文時刻, 'yyyy/mm/dd hh24:mi') from 注文データ where 注文番号 = ?id"

Copyright © 2004 101 Co., Ltd. All Rights Reserved.

(9)

)

call QuerySQL(rs, oracle, $sql) local(注文日時) call SQLResultRow(rs, 1, 注文日時)

1-6. 動作確認

1-6-1. 実行画面 下図のように注文詳細ページに「PDFでの表示」リンクが表示されます。 図 1-5. 注文詳細ページ 「PDFでの表示」リンクをクリックすると下図のようにデータベースから取得した値を各項目 に設定したPDFを動的に表示します。 図 1-6. 動的に作成されたPDF

(10)

1-7. 文字化けの対応

FDFファイルのエンコードを Shift-JIS にした場合、そのまま置き換えてしまうとシフトJIS漢 字コードの2バイト目が '¥' の場合に文字化けを起こします。 これは FDF を使用した場合の PDF の仕様です。 そのため、Unicode でエンコーディングして埋め込むことになります。PDF用の Unicodeエン コーディング文字列を作成するのが pdf.to_unicode() 関数です。 1-7-1. PDF表示のHTMLファイルの修正 (pdfview.html) 「/Encoding /Shift-JIS」を削除します。 <!-- %content-type application/vnd.fdf --> %FDF-1.2 1 0 obj << /FDF << /Fields [ << /V (@注文日時)/T (orderdate)>> <!-- %repeat -->

<< /V (@idx)/T (no@idx)>>

<< /V (@商品コード)/T (code@idx)>> << /V (@メーカー)/T (maker@idx)>> << /V (@商品名)/T (name@idx)>> << /V (@注文数)/T (num@idx)>> << /V (@金額)/T (price@idx)>> <!-- %end --> ] /F (http://www.101s.co.jp/pdf/order.pdf) >> >> endobj trailer << /Root 1 0 R >> %%EOF 1-7-2. PDF表示用の仕様定義書の修正 (pdfview.spj) 日本語文字列が使用される可能性のあるデータをエンコードするように修正します。 今回の例では「メーカー」と「商品名」が日本語文字列を使用していますので「reference」セ クションでエンコード処理をするように定義します。 [reference] 注文日時 = $注文日時 idx = $行番号 商品コード = $商品コード メーカー = pdf.to_unicode($メーカー) 商品名 = pdf.to_unicode($商品名) 注文数 = $注文数 金額 = $金額 [init_page]

Copyright © 2004 101 Co., Ltd. All Rights Reserved.

(11)

local(sql, rs) call ReplaceMarker(sql, "select 行番号, o.商品コード, 商品名, メーカー, 注文数, 金額 from 注文明細 o, 商品マスター m where 注文番号 = ?id and o.商品コード = m.商品コード order by 行番号" )

call QuerySQL(rs, oracle, $sql)

local(行番号, 商品コード, 商品名, メーカー, 注文数, 金額) call SQLResultRowArray(rs, 1, 0,

行番号, 商品コード, 商品名, メーカー, 注文数, 金額) call ReplaceMarker(sql,

"select to_char(注文時刻, 'yyyy/mm/dd hh24:mi') from 注文データ where 注文番号 = ?id"

)

call QuerySQL(rs, oracle, $sql) local(注文日時) call SQLResultRow(rs, 1, 注文日時) 1-7-3. 動作確認 図 1-6. では明細番号3のメーカーが文字化けしていましたが、この修正で改善されたこと を確認できます。 この文字列の文字化けがなくなりました。 この文字列の文字化けがなくなりました。 図 1-7. 文字化けが改善された動作画面

参照

関連したドキュメント

ホーム &gt;政策について &gt;分野別の政策一覧 &gt;福祉・介護 &gt;介護・高齢者福祉

We include applications to elliptic operators with Dirichlet, Neumann or Robin type boundary conditions on L p -spaces and on the space of continuous

Joshi; Existence and nonexistence of solutions of sublinear problems with prescribed num- ber of zeros on exterior domains, Electronic Journal of Differential Equations, 2017 No..

Thus, Fujita’s result says that there are no global, nontrivial solutions of (1.3) whenever the blow up rate for y(t) is not smaller than the decay rate for w(x, t) while there are

&lt; &gt;内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)&lt;9&gt;kg以上 砂 :4.5(9)&lt;16&gt;l以上 砂利 :6 (12)&lt;21&gt; l

Section 3 discusses the connection to automorphic forms, states the needed form of the Langlands conjecture, and gives the reduction of Theorem 1.6 to showing the non-existence

Applying the gluing formula to the above decomposition instead of the sum theorem, we can obtain a simpler method to compute the Reidemeister torsion for the pair.. We will now

Views of Kazunogawa Hydroelectric Power Station Dams &lt;Upper dam (Kamihikawa dam)&gt;. &lt;Lower dam