Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 11g リリース 1 (11.1.1) B61375-04 |
|
前 |
次 |
この項では、様々なレポート・カスタマイズの例を示します。ここでは次の例を取り上げます。
すべてのXMLカスタマイズには、次のタグ・ペアが必要です。
<report></report>
たとえば、最小限のXMLカスタマイズは次のとおりです。
<report name="emp" DTDVersion="9.0.2.0.0"> </report>
このXMLカスタマイズには何も含まれていないので、レポートに適用しても効果は一切ありません。必要なタグがあるので解析はできますが、単に必須タグの例として示しています。
<report>
タグは、レポート・カスタマイズの開始、レポート・カスタマイズ名およびこのXMLカスタマイズで使用するデータ型ディクショナリ(DTD)ファイルのバージョンを示します。</report>
タグは、レポート・カスタマイズの終了を示します。
report
タグのname
属性には、任意の名前を指定できます。たとえば、XMLファイルでカスタマイズするレポートの名前でも、それ以外の名前でもかまいません。
この例では、<report>
タグが最小限で使用されています。<report>
タグにも多数の属性がありますが、そのほとんどは暗黙的に示されており、指定する必要はありません。<report>
に唯一必要な属性は、DTDVersion
です。
注意: XMLカスタマイズ・ファイルを適用して、既存のレポート・トリガーを変更するか新しいレポート・トリガーを作成するには、 たとえば、Before Reportトリガーを変更または作成するには、 <report DTDVersion="9.0.2.0.0" beforeReportTrigger="BeforeReport"> XMLカスタマイズ・ファイルを適用してレポート・トリガーを変更または作成するときにこの属性を指定しないと、XMLカスタマイズ・ファイルがレポートに適用されたときに、レポート・トリガーのPL/SQLコードがローカル(依存しない)ファンクションとして扱われます。 |
完全なレポート定義には、データ・モデルとレイアウトの両方が必要です。したがって、次のタグとその内容を定義する必要があります。
<data></data>
<layout></layout>
data
タグには、属性がありません。layout
タグには、panelPrintOrder
とdirection
の2つの属性があり、その両方が必須です。これらの属性にデフォルト値(それぞれacrossDown
とdefault
)を使用する場合は、それらを指定する必要はありません。data
要素とlayout
要素の例は、次の各項で示します。
この項の例では、XMLを使用して、レポート・フィールドF_Mincurrent_pricePersymbol
およびF_Maxcurrent_pricePersymbol
に使用されている塗りつぶしカラーと線カラーを変更しています。
<report name="anyName" DTDVersion="9.0.2.0.0"> <layout> <section name="main"> <field name="F_Mincurrent_pricePersymbol" source="Mincurrent_pricePersymbol" lineColor="black" fillColor="r100g50b50"/> <field name="F_Maxcurrent_pricePersymbol" source="Maxcurrent_pricePersymbol" lineColor="black" fillColor="r100g50b50"/> </section> </layout> </report>
この例では、section
タグとfield
タグのname属性が、このXMLファイルでカスタマイズされるレポートのメイン・セクションに含まれるフィールドの名前と一致していることが前提となっています。この前提を踏まえて、field
タグのその他の属性は、レポートのメイン・セクション内にある同じ名前のフィールドのみに適用されます。
この項の例では、XMLを使用して、レポート・フィールドf_trade_date
に使用される書式マスクを変更しています。
<report name="anyName" DTDVersion="9.0.2.0.0"> <layout> <section name="main"> <field name="f_trade_date" source="trade_date" formatMask="MM/DD/RR"/> </section> </layout> </report>
field
タグが独自の終了書式(/>
)を使用していることに注意してください。field
タグが追加の子タグを使用する場合は、fiieldタグを</field>
で閉じます。
この項の例では、XMLを使用して、レポートのf_p_e
およびf_p_e1
フィールドで10より大きな値をハイライトする書式例外を追加しています。
<report name="anyName" DTDVersion="9.0.2.0.0"> <layout> <section name="main"> <field name="f_p_e" source="p_e"> <exception textColor="red"> <condition source="p_e" operator="gt" operand1="10"/> </exception> </field> <field name="f_p_e1" source="p_e"> <exception textColor="blue"> <condition source="p_e" operator="gt" operand1="10"/> </exception> </field> </section> </layout> </report>
この例では、operator
の値が、「より大きい」を示すgt
に設定されています。operatorには、表22-1に示すものを指定できます。
表22-1 operator属性の値
値 | 使用方法 |
---|---|
|
等しい |
|
より小さい |
|
以下 |
|
等しくない |
|
より大きい |
|
以上 |
|
範囲内 |
|
範囲外 |
|
類似 |
|
非類似 |
|
null |
|
非NULL |
前の例とは異なり、この例のfield
タグは、子タグを使用しているために、自己完結型の終了書式(/>
)ではなく、</field>
で閉じられていることにも注意してください。
この項の例では、XMLを使用してレポートにプログラム・ユニットを追加しています。このプログラム・ユニットによって、従業員の社会保障番号(:SSN
)から従業員の詳細にアクセスするハイパーリンクが追加されます。
<report name="anyName" DTDVersion="9.0.2.0.0"> <layout> <section name="header"> <field name="F_ssn1" source="ssn1"> <advancedLayout formatTrigger="F_ssn1FormatTrigger"/> </field> </section> <section name="main"> <field name="F_ssn" source="ssn"> <advancedLayout formatTrigger="F_ssnFormatTrigger"/> </field> </section> </layout> <programUnits> <function name="F_ssn1FormatTrigger"> <textSource> <![CDATA[ function F_ssn1FormatTrigger return boolean is begin SRW.SET_HYPERLINK('#EMP_DETAILS_&<' || LTRIM(TO_CHAR(:SSN)) || '>'); return (TRUE); end; ]]> </textSource> </function> <function name="F_ssnFormatTrigger"> <textSource> <![CDATA[ function F_ssnFormatTrigger return boolean is begin SRW.SET_LINKTAG('EMP_DETAILS_&<' || LTRIM(TO_CHAR(:SSN)) || '>'); return (TRUE); end; ]]> </textSource> </function> </programUnits> </report>
CDATA
タグは、PL/SQLをXMLと区別する目的で、PL/SQLの周辺で使用されています。XMLファイルにHTMLを埋め込むときも、同じタグ・シーケンスを使用します。この例では、advancedLayout
タグのformatTrigger
属性の名前でファンクションが参照されています。
この項の例では、XMLを使用して、レポートに新しい問合せを追加するとともに、その問合せの結果を利用する新しいヘッダー・セクションを追加しています。
<report name="ref" DTDVersion="9.0.2.0.0"> <data> <dataSource name="Q_summary"> <select>select portid ports, locname locations from portdesc</select> </dataSource> </data> <layout> <section name="header"> <tabular name="M_summary" template="BLAFbeige.tdf"> <labelAttribute font="Arial" fontSize="10" fontStyle="bold" textColor="white"/> <field name="F_ports" source="ports" label="Port IDs" font="Arial" fontSize="10"/> <field name="F_locations" source="locations" label="Port Names" font="Arial" fontSize="10"/> </tabular> </section> </layout> </report>
この例のXMLは、データ・モデルと完全なレイアウトを備えているため、単独で実行できます。
列名が必ず一意となるように、SELECT文では別名を使用します。別名を使用しなかった場合は、レポート列のデフォルト名が使用されるため、予定外の名前になる可能性があります(たとえば、portidではなくportid1など)。field
タグのsource
属性を指定する場合は、ソース列(フィールド)の正しい名前を使用する必要があるので、この名前の指定は重要なポイントになります。
labelAttribute
要素は、レイアウト内のフィールド・ラベルの書式を定義します。これはfield
タグの開始と終了タグの外側にあるため、表形式レイアウトのすべてのラベルに適用されます。この書式をいずれか1つのフィールドに関連付ける場合は、この要素を<field></field>
タグ・ペアの内側に配置します。グローバルおよびローカルのlabelAttribute
要素が両方とも(1つは<field></field>
タグ・ペアの外側に、もう1つは内側に)存在する場合は、ローカルなラベル属性がグローバルな属性より優先されます。