ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
11g リリース 1 (11.1.1)
B61375-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

20.5 配布XMLファイルの例

この項では、配布XML要素の単純な例から複雑な例までを紹介します。これらの例は、次に示すdistribution.dtdの主要な要素に基づいて編成されています。

20.5.1 foreachの例

この項で取り上げる例は、次のとおりです。

20.5.1.1 レポート・グループを個別の添付ファイルとする単一の電子メール

この例では、各添付ファイルがヘッダー、メイン、トレーラの各セクションの対応するインスタンスを含んでいます。つまり、レポートがdepartment_idでグループ化され、最初の部門が部門10である場合は、部門10の情報を含んでいるヘッダー、メイン、トレーラの各セクションからなるレポートが最初の添付ファイルとなります。この例が有効となるのは、同じグループ・インスタンス(この例の場合はdepartment_id)でヘッダー、メイン、トレーラの各セクションが繰り返される場合にかぎられます。

<mail id="a1" to="managers@mycompany.com" subject="New Hires">
  <foreach>
    <attach format="html" srcType="report" instance="this">
      <include src="report"/>
    </attach>
  </foreach>
</mail>

まず、この例では、managers@mycompany.comが各部門の管理者に配信を行うメーリング・リストのアドレスであることを前提とします。10、20、30、40の4つの部門がある場合は、最初の添付ファイルに部門10に対応するヘッダー、メイン、トレーラの各セクションが取り込まれ、後続の各添付ファイルに残りの各部門に対応するセクションが取り込まれます。この例では、4つの添付ファイルを伴う電子メールが受信者ごとに1通ずつ作成されます。

20.5.1.2 グループ・インスタンスごとに個別の電子メール

この例では、各受信者が、グループ化されたレポートごとに異なる電子メールを受け取ります。たとえば、レポートがdepartment_idでグループ化され、4つの部門が存在する場合は、1人の受信者がそれぞれに各部門のレポートが添付された4通の電子メールを受け取ります。

<foreach>
  <mail id="weeklies" to="managers@mycompany.com">
    <attach format="htmlcss" srcType="report" instance="this">
      <include src="mainSection"/>
    </attach>
  </mail>
</foreach>

20.5.1.3 単独のセクションを添付ファイルとする個別の電子メール

この例では、個別のセクションが別々のグループで繰り返されます。各受信者が、グループ化されたメイン・セクションごと、およびグループ化されたトレーラ・セクションごとの添付ファイルを伴う個別の電子メールを受信するように配布が設定されます。

<foreach>
<mail id="a6" to="managers@mycompany.com" subject="Personnel Reports">
    <attach format="pdf" name="attach.pdf" srcType="report" instance="this">
      <include src="mainSection"/>
    </attach>
    <attach format="rtf" name="attach.rtf" srcType="report" instance="this">
      <include src="trailerSection"/>
    </attach>
  </mail>
</foreach>

20.5.1.4 セクションごとに異なるファイル

この例では、グループ・インスタンスごとに異なるファイルが生成されます。グループはdepartment_idで繰り返されます。各ファイルには、関連する部門IDから名前が付けられます。

<foreach>
  <file id="a10" name="department_&amp;&lt;department_id&gt;.pdf" instance="this">
    <include src="mainSection"/>
  </file>
</foreach>

この例では、10から40までの4つの部門があることを前提に、department_10.pdfdepartment_20.pdfなどの名前で4つのファイルが作成されます。

file要素にはformat属性が含まれていません。srcTypefileまたはtextである場合は、これが不要であるためです。srcTypereportである場合、これは必須です。


注意:

この例で、変数値を使用するために一意のファイル名を指定しないと(第20.3.2項を参照)、後から作成される各ファイルによって、前に作成されたファイルが上書きされます。つまり、部門20のdepartment.pdfファイルによって部門10のdepartment.pdfファイルが上書きされます。この上書きは、最後の部門(部門40)レポートの情報を含んだdepartment.pdfが唯一のファイルとなるまで続きます。


Oracle Reports 11g リリース1 (11.1.1)では、レポートの配布と一括処理におけるPDF暗号化をサポートしています。この機能を使用することで、次のように、レポート出力をPDFセキュリティによって保護できます。

<foreach>
  <file id="a10" name="department_&amp;&lt;department_id&gt;.pdf" instance="this">
    <property name="pdfuser" value="&amp;&lt;department_id&gt;"/>
     <include src="mainSection"/>
  </file>
</foreach>

生成されたPDF出力を開くには、departmentidとしてパスワードを入力する必要があります。

20.5.1.5 レポートごとに実行される印刷

プリンタ名の指定方法は、WindowsとUNIXで異なります。最初にWindowsの例を示します。次にUNIXの例を示します。

20.5.1.5.1 Windows

この例では、レポートがdepartment_idでグループ化されるという前提で、レポートが部門ごとに印刷されます。

<foreach>
  <printer id="a7" name="\\server_name\printer_name" instance="this">
    <include src="report"/>
  </printer>
</foreach>

20.5.1.5.2 UNIX

この例では、レポートがdepartment_idでグループ化されるという前提で、レポートが部門ごとに印刷されます。

<foreach>
  <printer id="a7" name="printer_alias" instance="this">
    <include src="report"/>
  </printer>
</foreach>

20.5.2 mailの例

この項で取り上げる例は、次のとおりです。

20.5.2.1 レポート全体を本文とする電子メール

レポートがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、レポートが表示されます。

<mail id="a5" to="managers@mycompany.com" subject="Quarterly Report">
 <body srcType="report" format="html">
    <include src="report"/>
  </body>
</mail>

20.5.2.2 レポートの1つのセクションを本文とする電子メール

レポートの1つのセクションがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、レポートのセクションが表示されます。

<mail id="a6" to="employees@mycompany.com">
 <body srcType="report" format="html">
  <include src="mainSection"/>
 </body>
</mail>

このmail要素にはsubject属性が含まれないため、デフォルトの件名であるMail Sent From &amp;Reportが使用されます。変数&amp;Reportは、実行時にレポートの名前で置き換えられます。

20.5.2.3 レポートの2つのセクションを本文とする電子メール

レポートの2つのセクションがこの電子メールの内容となります。つまり、受信者がこの電子メールを開くと、1つのレポートに結合された2つのセクション(headerSectionとmainSection)が表示されます。

<mail id="emp_addresses" to="employees@mycompany.com" subject="Employee Address List">
 <body srcType="report" format="html">
  <include src="headerSection"/>
  <include src="mainSection"/>
 </body>
</mail>

20.5.2.4 外部ファイルを本文とし、レポートを添付ファイルとする電子メール

このメールでは、外部ファイルが本文の内容となり、レポートが添付ファイルとなります。外部ファイルへのパスの表し方は、WindowsとUNIXで異なります。

20.5.2.4.1 Windows

<mail id="XQRSN" to="accounting@mycompany.com" subject="Salaries">
 <body srcType="file">
  <include src="c:\mail\body.html"/>
 </body>
 <attach format="pdf" name="salaries.pdf" srcType="report">
  <include src="report"/>
 </attach>
</mail>

20.5.2.4.2 UNIX

<mail id="XQRSN" to="accounting@mycompany.com" subject="Salaries">
 <body srcType="file">
  <include src="/mail/body.html"/>
 </body>
  <attach format="pdf" name="salaries.pdf" srcType="report">
   <include src="report"/>
 </attach>
</mail>

20.5.2.5 レポート全体およびグループ化されたセクションが添付された電子メール

この例では、受信者が複数の添付ファイルを伴う1通の電子メールを受け取ります。その内訳は、グループ・インスタンスごとの1つの添付ファイルと、レポート全体を含んだ1つの添付ファイルです。レポートがdepartment_idでグループ化され、4つの部門が存在する場合は、受信者が5つの添付ファイルを受け取ります(部門ごとに1つの添付ファイルとレポート全体の添付ファイル)。

<mail id="grx90" to="sales@mycompany.com">
 <body srcType="text">Attached you will find the summary report and breakdown by department of weekly totals.
 </body>
  <attach format="rtf" name="myAttach.rtf" srcType="report">
   <include src="report"/>
  </attach>
  <foreach>
   <attach format="pdf" name="myattach.pdf" srcType="report" instance="this">
    <include src="mainSection"/>
   </attach>
  </foreach>
</mail>

20.5.2.6 関連する管理者と部門に送信される電子メール

この例では、部門10の管理者が部門10のレポートを受け取り、部門20の管理者が部門20のレポートを受け取ります。このタグ・セットが有効となるためには、添付されたセクションで使用されている「繰返し」グループに含まれる列を変数が参照する必要があります。つまり、セクションがG_department_idで繰り返される場合、managerがそのグループの列である必要があります。

<foreach>
 <mail id="mgr1090" to="&amp;&lt;manager&gt;@mycompany.com">
  <attach format="pdf" name="attach.pdf" srcType="report" instance="this">
    <include src="mainSection"/>
   </attach>
  </mail>
</foreach>

Oracle Reports 11g リリース1 (11.1.1)では、レポートの配布と一括処理におけるPDF暗号化をサポートしています。この機能を使用することで、次のように、レポート出力をPDFセキュリティによって保護できます。

<foreach>
 <mail id="mgr1090" to="&amp;&lt;manager&gt;@mycompany.com">
   <property name="pdfuser" value="&amp;&lt;manager&gt;" />
  <attach format="pdf" name="attach.pdf" srcType="report" instance="this">
   <include src="mainSection"/>
  </attach>
 </mail>
</foreach

20.5.3 fileの例

グループ化されたレポートを一括処理してファイルに配布する場合は、繰返しグループに基づいた変数値またはその他の変数情報を使用してファイル名を指定する必要があります。そうしないと、ファイルが作成されるたびに、前に作成されたファイルが上書きされるおそれがあります。たとえば、department.pdfの出力ファイル名を指定し、各部門のレポートのインスタンスを個別に出力すると、2番目のdepartment.pdfファイルによって最初のdepartment.pdfファイルが上書きされ、3番目のdepartment.pdfファイルによって2番目のdepartment.pdfファイルが上書きされます。その結果、最後の部門のレポートのみが残ることになります。グループ化されたレポートをグループ・インスタンスごとに個別に出力する場合は、変数値を使用してファイル名を指定してください(name="department_&amp;&lt;department_id&gt;.pdf"など)。

この項で取り上げる例は、次のとおりです。

20.5.3.1 レポート全体のファイル

この例では、レポート全体を含むreport.pdfというファイルが作成されます。

20.5.3.1.1 Windows

<file id="a1" name="c:\reports\report.pdf" format="pdf">
  <include src="report"/>
</file>

20.5.3.1.2 UNIX

<file id="a1" name="/reports/report.pdf" format="pdf">
  <include src="report"/>
</file>

20.5.3.2 結合されたレポート・セクションのファイル

この例では、レポートのヘッダー・セクションとメイン・セクションで構成されるレポートを含んだ、sections.pdfというファイルが作成されます。

<file id="a2" name="sections.pdf" format="pdf">
  <include src="headerSection"/>
  <include scr="mainSection"/>
</file>

20.5.3.3 結合されたセクションからなる各グループのファイル

この例では、繰返しグループごとに異なるファイルが作成されます。各ファイルには、関連するグループのメイン・セクションとトレーラ・セクションを結合したレポートが格納されます。メイン・セクションとトレーラ・セクションが、同じグループで繰り返される必要があります。また、変数のファイル名が、"つまり、レポートがdepartment_idで繰り返され、10から40までの4つの部門が存在する場合は、あるファイルに部門10のメイン・セクションとトレーラ・セクションが収められ、次のファイルに部門20のメイン・セクションとトレーラ・セクションが収められ、残りの部門も同様に処理されます。nameの中の変数値は、G_department_idグループに含まれている列を参照する必要があります。

<foreach>
 <file id="file9" name="department_&amp;&lt;department_id&gt;.pdf" instance="this">
  <include src="mainSection"/>
  <include src="trailerSection"/>
 </file>
</foreach>

20.5.3.4 レポート・グループ・インスタンスごとのファイル

この例では、レポートがdepartment_idでグループ化され、10から40までの4つの部門が存在することを前提として、4つのファイルを作成します。それぞれのファイル名はdepartment_10.pdfdepartment_20.pdfdepartment_30.pdfおよびdepartment_40.pdfです。

<foreach>
 <file id="a20" name="department_&amp;&lt;department_id&gt;.pdf" instance="this">
  <include src="report"/>
 </file>
</foreach>

20.5.4 printerの例

この項で取り上げる例は、次のとおりです。

プリンタ名の指定方法は、WindowsとUNIXで異なります。各例では、それぞれの指定方法を示します。

20.5.4.1 レポート全体の印刷

この例では、レポート全体が指定のプリンタに送信されます。

20.5.4.1.1 Windows

<printer id="a80" name="\\neptune\prtr20">
  <include src="report"/>
</printer>

20.5.4.1.2 UNIX

<printer id="a80" name="10th_floor_printer">
  <include src="report"/>
</printer>

20.5.4.2 レポートの2つのセクションの印刷

この例では、レポートの2つのセクションがプリンタに送信されます。

20.5.4.2.1 Windows

<printer id="a1" name="\\neptune\prtr20">
  <include src="headerSection"/>
  <include src="mainSection"/>
</printer>

20.5.4.2.2 UNIX

<printer id="a1" name="10th_floor_printer">
  <include src="headerSection"/>
  <include src="mainSection"/>
</printer>

20.5.4.3 グループ化されたレポートの印刷

この例では、1つのレポートが印刷されます。このレポートは、department_idなどでグループ化されます。そのためには、レポートのすべてのセクションを同じグループで繰り返す必要があります。

20.5.4.3.1 Windows

<foreach>
 <printer id="prt20" name="\\neptune\prtr20" instance="all">
  <include src="report"/>
 </printer>
</foreach>

20.5.4.3.2 UNIX

<foreach>
<printer id="prt20" name="10th_floor_printer" instance="all">
<include src="report"/>
</printer>
</foreach>

20.5.4.4 結合されたセクションをグループ・インスタンスごとに印刷

この例では、グループ・インスタンスごとに1つずつ印刷ジョブが生成されます。結合されたセクションを、同じグループで繰り返す必要があります。レポートがdepartment_idで繰り返され、10から40までの4つの部門が存在する場合は、4つの印刷ジョブが生成されます。つまり、部門10に1つのジョブが生成され、残りの部門にも1つずつジョブが生成されます。メイン・セクションとトレーラ・セクションの両方が、department_idで繰り返される必要があります。

20.5.4.4.1 Windows

<foreach>
 <printer id="prt20" name="\\neptune\prtr20" instance="this">
  <include src="mainSection"/>
  <include src="trailerSection"/>
 </printer>
</foreach>

20.5.4.4.2 UNIX

<foreach>
 <printer id="prt20" name="10th_floor_printer" instance="this">
   <include src="mainSection"/>
   <include src="trailerSection"/>
 </printer>
</foreach>

20.5.4.5 レポートの適切なインスタンスをその関連プリンタに印刷

この例が機能するには、repeat onグループにホスト・プラットフォームの適切なプリンタ名を含んだ列が含まれている必要があります。つまり、printer_name列に適切なプリンタの別名(UNIX)またはプリンタ・サーバー/名前の組合せ(Windows)が含まれている必要があります。たとえば、レポートがdepartment_idでグループ化される場合は、G_department_idprinter_name列が必要となります。printer_nameが部門に関連付けられているとすると、部門10のレポートが部門10のプリンタに印刷され、部門20のレポートが部門20のプリンタに印刷されます(以下同様)。

<foreach>
 <printer id="a60" name="&amp;printer_name" instance="this">
   <include src="mainSection"/>
 </printer>
</foreach>

各グループ・インスタンスは、個別の印刷ジョブに相当します。各印刷ジョブは、関連する部門のプリンタに送信されます。

20.5.5 destypeの例

destypeを使用すると、配布時に、Oracle Reportsで使用可能なカスタムの宛先またはプラガブル宛先を定義できます。詳細は、第20.4.9項「destype」を参照してください。この項では、次の宛先の例について説明します。

20.5.5.1 Oracle Portal宛先

この例では、レポート出力をOracle Portalの宛先に送信する場合の汎用タグ構造を示します。DESTYPE=ORACLEPORTALを使用してレポート出力をOracle Portalに配信するときは、レポート出力はPAGEGROUPフォルダに作成されます。


関連項目:

この例にあるプロパティの詳細は、付録A「コマンドライン・キーワード」を参照してください。


<destinations> 
  <destype id="customforPortal" name="oraclePortal"> 
    <property name="outputpage" value="sample_report"/> 
    <property name="statuspage" value="Reports_Status"/> 
    <property name="pagegroup" value="REPORTS_OUTPUT"/> 
    <property name="itemtitle" value="MyReport"/> 
    <include src="report"/> 
  </destype> 
</destinations>

20.5.5.2 FTP宛先

この例では、レポート出力をFTPの宛先に送信する場合の汎用のタグ構造を示します。

<destinations>
         <foreach>
          <destype id="ftp1" name="ftp" instance="this" format="pdf">
   <property name="desname"
    value="ftp://username:passwd@ftpServer/dir/myreport_&amp;&lt;
    DEPARTMENT_NAME&gt;.pdf"/>
                    <include src="mainSection"/>
  </destype>
 </foreach>
</destinations>

20.5.5.3 WebDAV宛先

この例では、レポート出力をWebDAVの宛先に送信する場合の汎用のタグ構造を示します。

<destinations>
 <foreach>
  <destype id="webdav1" name="webdav" instance="this" format="pdf">
   <property name="desname" 
    value="http://user:passwd@WebDAVServer/dir/myreport_&amp;&lt;
    DEPARTMENT_NAME&gt;.pdf"/>
    <include src="mainSection"/>
  </destype>
 </foreach>
</destinations>

20.5.5.4 FAX宛先

この例では、レポート出力をFAXの宛先に送信する場合の汎用のタグ構造を示します。

<destype id="faxdest" name="fax">
  <property name="number" value="123456789"/>
  <include src="report"/>
</destype>

これとは別に、使いやすさを考慮して、次のようなより具体的なカスタムのタグ構造を指定することもできます。

<fax id="faxdest" number="123456789">
  <include src="report"/>
</fax>

注意:

distribution.xslファイルを変更した後は、そのファイルを同じ位置に同じファイル名で保存する必要があります。Oracle Reportsでは、宛先を解決する際に自動的にこのファイルが検索されます。