12.3.17 レポート・テンプレート
レポート列テンプレートによって、SQL問合せによって戻される1行の結果を制御できます。このタイプのテンプレートは、行全体ではなく、セルを定義します。
各レポート・テンプレートでは、#1#、#2#、#3#
などの構文を使用して列名を識別します。#ENAME#
や#EMPNO#
などの列名の置換構文を使用して、列に名前を付けることもできます。アプリケーションのどのアイテムもテンプレート内で参照できます。たとえば、テンプレートのABC.
というアイテムを参照するには、置換文字列&ABC.
を正確に含めます。ABC.の実際の値は、ABC
という名前のアプリケーションのアイテムを編集するエンド・ユーザーによって提供されます。
- 汎用列テンプレートおよび名前付き列テンプレート
- 汎用列テンプレートのレポート列テンプレート属性
- 名前付き列テンプレートのレポート列テンプレート属性
- 列テンプレートでのJavaScriptの使用について
親トピック: カスタム・テーマの作成
12.3.17.1 汎用列テンプレートおよび名前付き列テンプレート
Oracle Application Expressには、次の2種類のレポート・テンプレートが含まれています。
親トピック: レポート・テンプレート
12.3.17.1.1 汎用列テンプレート
汎用列テンプレートは、列の外観を1回定義することによって、レポートの外観を決定します。その後、この外観は、レポート定義に指定された列の数に基づいて、必要なだけ繰り返されます。このタイプのテンプレートを使用できるのは、行および列が標準的な構造のレポートに限られます。条件を使用すると、このタイプのテンプレートでレポートに追加のスタイルを適用できます。
次の例では、各列で特定のスタイルを使用する方法を示します。
<td class="tabledata" align="#ALIGN#">#COLUMN_VALUE#</td>
この例では、ページ・テンプレートにクラスtabledata
を含むCSSが存在することを想定しています。また、この例では、置換文字列#ALIGN#
および#COLUMN_VALUE#
を使用しています。実際にこのレポートを実行すると、これらの置換文字列は、SQL問合せの結果によって生成された値に置換されます。
問合せの選択リストに式を使用する場合は、列の別名を作成して実行時エラーを回避することをお薦めします。たとえば、次のような問合せを考えてみます。
SELECT ename, (sal + comm) * 12 FROM emp
問合せをリライトして、次のように列に別名を付けることができます。
SELECT ename, (sal + comm) * 12 yearly_comp FROM emp
親トピック: 汎用列テンプレートおよび名前付き列テンプレート
12.3.17.1.2 名前付き列テンプレート
名前付き列テンプレートを使用すると、より柔軟にレポートを設計できます。ただし、名前付きテンプレートは名前で列を参照するため、それらの列を基にしたレポートでのみ使用されます。次に例を示します。
<tr><td>#ENAME#</td><td>#SAL#</td></tr>
名前付き列テンプレートは自由度の高いものですが、問合せごとに新しいテンプレートを作成する必要がある場合があります。位置表記を含めることもできます。次の例では、HTMLおよび置換文字列を使用する方法を示します。
<tr><td>#ENAME#</td><td>#SAL#</td></tr> <tr><td>#1#</td><td>#2#</td></tr>
親トピック: 汎用列テンプレートおよび名前付き列テンプレート
12.3.17.2 汎用列テンプレートのレポート列テンプレート属性
ここでは、汎用列テンプレートのレポート・テンプレートの編集ページの特定のセクションについて説明します。特定の属性についてさらに学習するには、フィールドレベル・ヘルプを参照してください。
12.3.17.2.1 レポート・テンプレート
「テンプレート名」は、テンプレートの名前を示します。「テンプレート・タイプ」には、テンプレートのタイプを指定します。名前付き列テンプレートは、テンプレートの列名を参照します。汎用列テンプレートは、テンプレートの#COLUMN_VALUE#
置換文字列を参照します。
「テーマ」は、テンプレートが関連付けられているテーマを示します。 「テンプレート・クラス」は、そのテンプレートに固有の用途を示します。新しいテーマに切り替えると、あるテーマのすべてのテンプレートは、別のテーマの対応するテンプレートにマップされます。アプリケーション・ビルダーは、テンプレート・クラスの割当てによってこのテンプレート・マッピングを行います。テンプレートに翻訳が必要なテキスト文字列が含まれていることを示すには、「翻訳可能」チェック・ボックスを使用します。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.2 行の前
「行の前」では、レポート・テンプレートの最初に1回表示するHTMLを入力します。
HTML表は、一般的に、次のようにこの属性を使用して開始します。
<table>
置換文字列#TOP_PAGINATION#
を含めることによって、レポートの上部にページ区切りを含めることができます。この置換文字列は、開始タグ<tr>
で始まり、閉じタグ</tr>
で終わるHTMLを生成します。たとえば、表の開始タグと#TOP_PAGINATION#
置換文字列を含めるには、次のように入力します。
<table>#TOP_PAGINATION#
また、置換文字列 #CSV_LINK#を使用すると、ほぼすべてのスプレッドシート・プログラムと互換性があるカンマ区切り値(CSV)形式にレポートをエクスポートできるようになります。
また、置換文字列#REPORT_ATTRIBUTES#
を使用することもできます。この置換文字列は、レポート属性ページのレポート・リージョンごとに設定されます。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.3 列ヘッダー
「列ヘッダーの前」を使用して、レポート・ヘッダーの前にテキストを表示します。
「列ヘッダー・テンプレート」を使用して、各列ヘッダーのセルをカラーにします。この属性のテキストには、セルのヘッダー・テキストをカラーにする位置を示すヘルプを含める必要があります。次に例を示します。
<th >Item Help Text</th>
列ヘッダーを使用しない場合は、次のように入力します。
OMIT
この属性を使用しない場合は、Application Expressエンジンによって、デフォルトの列ヘッダー・テンプレートが適用されます。
「列ヘッダーの後」を使用して、レポート・ヘッダーの後にテキストを表示します。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.4 各行の前
「各行の前」では、レポートのすべての列の前に表示するテキストを入力します。この属性は、新しいHTML行を開始するために使用します。「各行の前」では、次の置換文字列をサポートします。
-
#ROWNUM#
この置換文字列は、現行の行を指定するために使用します。
-
#COLCOUNT#
この置換文字列は、列の数を指定するために使用します。
-
#HIGHLIGHT_ROW#
この置換文字列は、ハイライトされた行の数を指定するために使用します。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.5 列テンプレート
列テンプレートは、各列の外観を定義します。最大4つの列テンプレートを定義できます。各テンプレートは、条件付きにできます。たとえば、偶数行と奇数行に異なる背景色を指定したり、PL/SQLで定義した条件に一致する行をハイライトできます。
各列テンプレートでは、各列の外観を定義します。表12-14に、列テンプレートでサポートされる置換文字列を示します。
表 12-14 列テンプレートの置換文字列
置換文字列 | 説明 |
---|---|
|
列の位置合せを指定します。ユーザーが指定します。 |
|
列数のカウントを定義します。 |
|
現在の列番号を定義します。 |
|
列ヘッダーを定義します。 |
|
列の値に置換されます。 |
|
現在の行番号を指定します。 |
次の例を検討してください:
<td> #ALIGNMENT#>#COLUMN_VALUE#</td>
実際にこのレポートを実行すると、これらの置換文字列は、SQL問合せの結果によって生成された値に置換されます。
条件を作成すると、指定した条件に一致するかどうかによって列の表示が異なるレポートを作成できます。条件付きで使用される列テンプレートを指定するには、列テンプレートの条件リストから条件タイプを選択します。有効な値は、次のとおりです。
-
PL/SQL式に基づく使用: その行のデータに基づき、条件付きで列を書式化します。
-
偶数行で使用:偶数行を条件付きで書式化します。
-
奇数行で使用:奇数行を条件付きで書式化します。
「PL/SQL式に基づく使用」を選択する場合は、次のステップは、列テンプレートの式フィールドでPL/SQL式を入力します。たとえば、次の式で値が2000より大きい場合、その値を太字で表示します。
#SAL# > 2000
置換文字列#ROWNUM#
を使用することもできます。次に例を示します。
#ROWNUM# > 2000
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.6 各行の後
「各行の後」には、レポートを表示する際にすべての列の後に表示するHTMLを入力します。多くの場合、この属性は、HTML表の行を閉じるために使用されます。次に例を示します。
</tr>
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.7 行の後
「行の後」を使用して、最後の行の後に表示するテキストを指定します。HTML表のタグは、一般的に、この属性を使用して閉じます。次に例を示します。
</table>
「行の後」属性は、次の置換文字列をサポートします。
-
#PAGINATION#
ページ区切り属性で置換されます。
-
#COLCOUNT#
実行時に、レポートで定義された列数に置換されます。
-
#CSV_LINK#
CSVのエクスポートが有効な場合に、CSVダウンロード・リンクに実行時に置換されます。それ以外の場合、文字列は表示されません。
-
#EXTERNAL_LINK#
実行時に、外部処理エンジン(PDFエクスポートなど)を使用するエクスポートのダウンロード・リンクに置換されます。この機能が有効でない場合、文字列は表示されません。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.8 行選択
「チェックした行のバックグラウンド・カラー」では、行セレクタが選択されている場合のレポート行の背景色が制御されます。「カレント行のバックグラウンド・カラー」では、ユーザーがその行の上にマウスを移動した場合のレポート行の背景色を制御します。
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.2.9 ページ区切りサブテンプレート
「ページ区切りのサブテンプレート」セクションには、「ページ区切りテンプレート」、「次のページ・テンプレート」、「前のページ・テンプレート」、「次のセット・テンプレート」および「前のセット・テンプレート」を編集する属性が含まれています。ページ区切りのサブテンプレートは、置換文字列#PAGINATION_NEXT#
、#PAGINATION_NEXT_SET#
、#PAGINATION_PREVIOUS#
および#PAGINATION_PREVIOUS_SET#
をサポートしています。表12-17に、これらのテンプレートについて示します。
表 12-15 ページ区切りのサブテンプレート属性
ページ区切りサブテンプレート属性 | 説明 |
---|---|
ページ区切りサブテンプレート全体に適用します。次に例を示します。 <span class="instructiontext">#TEXT#</span> 置換文字列 個々のアイテムを変更するには、その他のページ区切りサブテンプレート属性を使用します。 |
|
ページ区切りサブテンプレートの「次のページ」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">next</a> |
|
ページ区切りサブテンプレートの「前のページ」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">previous</a> |
|
ページ区切りサブテンプレートの「次のセット」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">next set</a> |
|
ページ区切りサブテンプレートの「前の設定」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">previous set</a> |
親トピック: 汎用列テンプレートのレポート列テンプレート属性
12.3.17.3 名前付き列テンプレートのレポート列テンプレート属性
ここでは、名前付き列テンプレートのレポート・テンプレートの編集ページの特定のセクションについて説明します。ページの各セクションにアクセスするには、ページをスクロール・ダウンするか、ページ上部のナビゲーション・ボタンをクリックします。ページ上部のボタンを選択すると、選択されたセクションが表示され、その他のセクションはすべて一時的に非表示になります。ページのすべてのセクションを表示するには、「すべて表示」をクリックします。
12.3.17.3.1 名前
「テンプレート名」は、テンプレートの名前を示します。「テンプレート・タイプ」には、テンプレートのタイプを指定します。名前付き列テンプレートは、テンプレートの列名を参照します。汎用列テンプレートは、テンプレートの#COLUMN_VALUE#
置換文字列を参照します。
「テーマ」は、テンプレートが関連付けられているテーマを示します。テンプレートに翻訳が必要なテキスト文字列が含まれていることを示すには、「翻訳可能」チェック・ボックスを使用します。「テンプレート・クラス」は、そのテンプレートに固有の用途を示します。新しいテーマに切り替えると、あるテーマのすべてのテンプレートは、別のテーマの対応するテンプレートにマップされます。アプリケーション・ビルダーは、テンプレート・クラスの割当てによってこのテンプレート・マッピングを行います。
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.3.2 サブスクリプション
「サブスクリプション」を使用して、カレント・アプリケーションに既存のテンプレートを適用します。既存のテンプレートを選択すると、ユーザーはそのテンプレートのサブスクライバになります。
マスター・テンプレートの新しいコピーをロードするには、「リフレッシュ」をクリックします。
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.3.3 行テンプレート
行テンプレートは、各行の外観を定義します。最大4つの行テンプレートを定義できます。各テンプレートは、条件付きにできます。
各行テンプレートでは、各行の外観を定義します。表12-16に、行テンプレートでサポートされる置換文字列を示します。
表 12-16 行テンプレートの置換文字列
置換文字列 | 説明 |
---|---|
|
行の位置合せを指定します。ユーザーが指定します。 |
|
列数のカウントを定義します。 |
|
現在の列番号を定義します。 |
|
列ヘッダーを定義します。 |
|
列の値に置換されます。 |
|
現在の行番号を指定します。 |
条件を作成すると、指定した条件に一致するかどうかによって行の表示が異なるレポートを作成できます。条件付きで使用される行テンプレートを指定するには、列テンプレートの条件リストから条件タイプを選択します。有効な値は、次のとおりです。
-
PL/SQL式に基づく使用: その行のデータに基づき、条件付きで列を書式化します。
-
偶数行で使用:偶数行を条件付きで書式化します。
-
奇数行で使用:奇数行を条件付きで書式化します。
「PL/SQL式に基づく使用」を選択する場合は、次のステップは、列テンプレートの式フィールドでPL/SQL式を入力します。たとえば、次の式で値が2000より大きい場合、その値を太字で表示します。
#SAL# > 2000
置換文字列#ROWNUM#
を使用することもできます。次に例を示します。
#ROWNUM# > 2000
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.3.4 列ヘッダー
各列ヘッダーのセルに色を追加するには、このテンプレートを使用します。この属性のテキストには、セルのヘッダー・テキストをカラー化する位置を指定する必要があります。「列ヘッダー・テンプレート」を入力しない場合は、デフォルトの列ヘッダー・テンプレートが適用されます。列ヘッダーを使用しない場合は、OMIT
を入力します。次に例を示します。
<th #ALIGNMENT#>#COLUMN_HEADER#</th>
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.3.5 最初の前および最後の後のテキスト
「行の前」では、レポート・テンプレートの最初に1回表示するHTMLを入力します。HTML表は、一般的に、次のようにこの属性を使用して開始します。
<table>
構文#1#
、#2#
、#3#
を使用して列ヘッダーを指定できます。次に例を示します。
<th>#1#</th><th>#2#</th><th>#3#</th>
置換文字列#TOP_PAGINATION#
を含めることによって、レポートの上部にページ区切りを含めることができます。この置換文字列は、開始タグ<tr>
で始まり、閉じタグ</tr>
で終わるHTMLを生成します。たとえば、表の開始タグと#TOP_PAGINATION#
置換文字列を含めるには、次のように入力します。
<table>#TOP_PAGINATION#
また、置換文字列#CSV_LINK#
を使用すると、ほぼすべてのスプレッドシート・プログラムと互換性があるCSVフォーマットにレポートをエクスポートできるようになります。
「行の後」を使用して、最後の行の後に表示するテキストを指定します。HTML表のタグは、一般的に、この属性を使用して閉じます。次に例を示します。
</table>
「行の後」属性は、次の置換文字列をサポートします。
-
#PAGINATION#
ページ区切り属性で置換されます。
-
#COLCOUNT#
実行時に、レポートで定義された列数に置換されます。
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.3.6 ページ区切り
「ページ区切り」セクションには、「ページ区切りテンプレート」、「次のページ・テンプレート」、「前のページ・テンプレート」、「次のセット・テンプレート」および「前のセット・テンプレート」を編集する属性が含まれています。ページ区切りのサブテンプレートは、置換文字列#PAGINATION_NEXT#
、#PAGINATION_NEXT_SET#
、#PAGINATION_PREVIOUS#
および#PAGINATION_PREVIOUS_SET#
をサポートしています。表12-17に、これらのテンプレートについて示します。
表 12-17 ページ区切りのサブテンプレート属性
ページ区切りサブテンプレート属性 | 説明 |
---|---|
ページ区切りサブテンプレート全体に適用します。次に例を示します。 <span class="instructiontext">#TEXT#</span> 置換文字列 個々のアイテムを変更するには、その他のページ区切りサブテンプレート属性を使用します。 |
|
ページ区切りサブテンプレートの「次のページ」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">next</a> |
|
ページ区切りサブテンプレートの「前のページ」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">previous</a> |
|
ページ区切りサブテンプレートの「次のセット」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">next set</a> |
|
ページ区切りサブテンプレートの「前の設定」部分を表示する方法を変更するHTMLを入力します。次に例を示します。 <a href="#LINK#">previous set</a> |
親トピック: 名前付き列テンプレートのレポート列テンプレート属性
12.3.17.4 列テンプレートでのJavaScriptの使用について
JavaScriptを使用すると、データベース内の値に応じてHTMLを条件付きで表示できます。次の例では、GROUP_DESC
問合せ列がNULLでない場合にのみHTML行が表示されます。
<script language="javascript"> IF ( "#GROUP_DESC#" != "" ) document.writeln( "<TR>; <TD BGCOLOR=#336699>;</TD> </TR> </TR> <TD>#GROUP_DESC#</TD> </TR>" ); </TR>" );
関連項目:
親トピック: レポート・テンプレート