13 RTFテンプレートの作成
ここでは、RTFレポート・テンプレートでXMLデータをレイアウト要素に関連付ける概念について説明します。また、複雑で高度な条件付きレポート・フォーマットを作成するための基本的な技術と高度な技術について説明します。
トピック:
ビュー・オブジェクトを使用したデータ・セットの作成
Publisherを使用すると、Oracle Application Development Frameworkで作成したカスタム・アプリケーションに接続して、そのアプリケーションのビュー・オブジェクトをレポートのデータソースとして使用できます。
SQLがデータベースに対して直接実行されるため、問合せ実行のパフォーマンスが向上します。
ビュー・オブジェクトを使用してPublisherデータ・モデルを作成する前に、まずアプリケーションでビュー・オブジェクトを作成する必要があります。
レポートでのバーコード・フォントの使用
Publisherには、バーコードを出力するフォントが複数含まれています。
Publisherに含まれるフォント・ファイル:
- LibreBarcode128-Regular.TTF - code128a、code128bおよびcode128cアルゴリズムをサポートします。3つのcode128アルゴリズムを自動的に切り替えるcode128autoもサポートします。
- LibreBarcode39-Regular.TTF - code39およびcode39mod43アルゴリズムをサポートします。
- LibreBarcodeEAN13Text-Regular.TTF - upcaおよびupceアルゴリズムをサポートします。
事前パッケージ済フォントのいずれかを使用する場合、Publisherでは、バーコード・フォントを出力ドキュメントのデータに適用する前に、データに対する前処理を実行します。たとえば、書式を設定する前には、データのチェックサム値やスタート・ビットとエンド・ビットを計算します。
設計時には、Microsoft Wordのフィールドにバーコード・フォントを適用する必要はありません。かわりに、Publisherのフォント・マッピングを使用して、フィールドに適用するフォントをマップできます。実行時に、Publisherはフォント・マッピングで指定されたベース・フォントを使用して、フィールドにバーコード・フォントを適用します。テンプレートの他の場所で使用されていないフォントを選択してください。
Microsoft Wordでフォントを直接使用する場合、適切な.TTFファイルをC:\WINDOWS\Fonts
ディレクトリに追加します。Template Builderのプレビュー機能を使用するには、Template Builderの構成ファイルでフォントをマップします。
レポート出力でバーコード・フォントを使用するには:
次の点に注意してください。
-
バーコード・フォントがクライアントにインストールされている場合でも、Microsoft Wordによって適切に表示されない場合があります。この問題を回避するには、別のフォントをフィールドに適用し、前述のようにフォントをマップします。
-
upcaアルゴリズムは、UPC-Aメッセージ文字列のみを受け入れて、UPC-Aバーコードへとエンコードします。
-
12文字の文字列は、検査数字付のUPC-Aメッセージとして処理され、11文字の文字列は検査数字がないものとして処理されます。
-
upceアルゴリズムは、UPC-Eメッセージ文字列だけを受け入れて、UPC-Eバーコードへとエンコードします。
-
8文字の文字列は、前部と後部の両方にガード・バーを持つUPC-Eメッセージとして処理されます。6文字の文字列はガード・バーがないものとして扱われます。
カスタム・バーコード書式の実装
かわりにカスタム・バーコードを使用することを選択した場合、この手順を使用してカスタム・バーコードを実装します。
Publisherには、バーコード・フォントを出力ドキュメントのデータに適用する前に、データに対する前処理を実行する機能があります。たとえば、データの書式設定前に、そのデータのチェックサム値やスタート・ビットとエンド・ビットの計算が必要な場合があります。
このソリューションには、Publisherへのバーコード・エンコーディング・クラスの登録が必要で、それを実行時にインスタンス化してテンプレートの書式設定を適用できます。
テンプレートで書式設定機能を有効にするには、テンプレート内で2つのコマンドを使用する必要があります。1つ目は、バーコード・エンコーディング・クラスをPublisherに登録するコマンドです。この登録は、エンコーディング・コマンドより前にテンプレートで宣言する必要があります。2つ目は、書式を設定するデータを識別するためのエンコーディング・コマンドです。
バーコード・エンコーディング・クラスの登録
フォーム・フィールドにバーコードを含めることができます。
次の構文をテンプレートのフォーム・フィールドで使用して、バーコード・エンコーディング・クラスを登録します。
<?register-barcode-vendor:java_class_name;barcode_vendor_id?>
このコマンドには、Javaクラス名(エンコーディングを実行する)と、クラス別に定義されたバーコード・ベンダーIDが必要です。このコマンドは、テンプレート内でデータをエンコーディングするコマンドの前に配置する必要があります。たとえば:
<?register-barcode-vendor:'oracle.xdo.template.rtf.util.barcoder.BarcodeUtil';'XMLPBarVendor'?>
説明
oracle.xdo.template.rtf.util.barcoder.BarcodeUtil
はJavaクラスです
XMLPBarVendor
は、クラス別に定義されたベンダーIDです。
データのエンコード
データを書式設定するには、次の構文をテンプレートのフォーム・フィールドで使用します。
<?format-barcode:data;'barcode_type'?>
説明
data
は、エンコーディング対象のXMLデータソースからの要素です。例: LABEL_ID
barcode_type
は、データの書式設定に使用されるエンコーディングJavaクラスのメソッドです。例: code128a
。
たとえば:
<?format-barcode:LABEL_ID;'code128a'?>
実行時に、barcode_typeメソッドがコールされてデータ値の書式が設定され、最終出力のデータにバーコード・フォントが適用されます。
2Dバーコード関数
QRコードまたはPDF417 2Dバーコード・タイプをRTFテンプレートで使用できます。RTFテンプレートの作成時に、qrcodeまたはpdf417関数を使用してバーコード・タイプを指定します。これらの関数は外部フォントを必要としません。
qrcodeの構文
<?qrcode: <DATA>; <SIZE>[; <CHARSET>[; <ECLEVEL>[; <GS1FORMAT>[; <MASKPATTERN>[; <QRVERSION>]]]]]?>
説明
- DATA – QRコード形式にエンコードするデータ。
- SIZE - ポイント(pt)単位のQRコードのサイズ寸法。
- CHARSET - (オプション)データをエンコードする文字セット。デフォルトはUTF8です。
- ECLEVEL - (オプション) QRコードの誤り訂正レベル。デフォルトは「M」です。
有効な値は次のとおりです。
- "H" (最大30%訂正)
- "Q" (最大25%訂正)
- "M" (最大15%訂正)
- "L" (最大7%訂正)
- GS1FORMAT - (オプション) GS1形式でデータをエンコードするかどうか。データのエンコードにGS1標準を使用する場合は、「true」を入力します。
- MASKPATTERN - (オプション)使用するQRコード・マスク・パターン。デフォルトは、最適なマスクパターンです。有効な値は、1から7までの整数(または整数の文字列表現)です。
- QRVERSION - (オプション)エンコードするQRコードの正確なバージョン。デフォルトは、エンコードするデータのサイズによって決定されるバージョンです。有効な値は、1から40までの整数(または整数の文字列表現)です。
<?qrcode: ‘01049123451234591597033130128’; ‘200’;’’ ; ‘H’; ‘true’; ‘’; 4?>
文字セットとマスクのパターンは、デフォルト値を使用するために空白のままにします。
pdf417の構文
<?pdf417: <DATA>[; <XSCALE>[; <COLUMNS>[; <ROWS>[; <CHARSET>]]]]?>
説明
- DATA – PDF417フォーマットにエンコードするデータ。
- XSCALE – PDF417モジュール幅当たりのポイント(pt)。デフォルトは1 (モジュール当たり1pt)です。
- COLUMNS – 生成されるPDF417シンボルに使用される列数。デフォルトは-1です。
- ROWS – 生成されるPDF417シンボルに使用される行数。デフォルトは-1です。
- CHARSET – (オプション)バイト圧縮モードでデータをエンコードするために使用される文字セット。Latin-1(ISO-8859-1)以外の文字がデータに含まれている場合にのみ、CHARSETを指定します。