Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 12c (12.2.1.3.0) E90221-01 |
|
前へ |
次へ |
この項では、パラメータとパラメータ・フォームを操作する際に実行する可能性がある次のタスクの手順について説明します。
関連項目
第1.6.5項「ペーパー・パラメータ・フォーム・ビューについて」
第1.11.1項「ランタイム・パラメータ・フォームについて」
第1.9.4項「Webレポートのパラメータ・フォームについて」
オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「システム・パラメータ」ノードを開きます。
目的のパラメータのプロパティ・アイコンをダブルクリックし、プロパティ・インスペクタを表示します。
「パラメータ」ノードで、必要に応じて「初期値」プロパティを設定します。
実行時にパラメータの値を検証するには、「...」ボタンをクリックしてPL/SQLエディタを表示し、実行時にトリガーされるPL/SQLを定義して、「検証トリガー」プロパティを設定します。
注意: Oracle Reports Builderでは、問合せの中でパラメータのバインド参照を使用すると、自動的にユーザー・パラメータが作成されます。 |
オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「ユーザー・パラメータ」ノードをクリックします。
ツールバーの「作成」ボタンをクリックします。
新しいパラメータのプロパティ・アイコンをダブルクリックし、プロパティ・インスペクタを表示します。
「一般情報」ノードで、「名前」プロパティを適切なパラメータ名に置き換えます。
「パラメータ」ノードで、必要に応じて「初期値」プロパティと「値リスト」プロパティを設定します。
実行時にパラメータの値を検証するには、プロパティ・フィールドをクリックしてPL/SQLエディタを表示し、実行時にトリガーされるPL/SQLを定義して、「検証トリガー」プロパティを設定します。
ヒント: テンプレートでパラメータを定義する場合、そのテンプレートをレポートに適用して、ランタイム・パラメータ・フォーム用にそのパラメータを選択する必要があります。 |
パラメータのLOVを作成するには:
オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「ユーザー・パラメータ」ノードを開きます。
LOVを作成するパラメータのプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。
「パラメータ」ノードで、「値リスト」プロパティ・フィールドをダブルクリックして「値リスト・パラメータ」ダイアログ・ボックスを表示します。
作成するリストのタイプを選択します。
静的値を選択する場合、「値」テキスト・ボックスに値を入力し、「追加」をクリックします。追加する値ごとに、この手順を繰り返します。(リストから項目を削除するには、「削除」をクリックします)
SELECT文を選択する場合は、値リストに移入する問合せを入力します。値リストには、2つ以上の列を選択し、表示することができます。最初の列には、パラメータに割り当てられる値が含まれます。値リストには、問合せに指定された順序で列が表示されます。
パラメータ値をLOVの値のみに制限する場合は、「事前定義済値に対するリストを制限」チェック・ボックスを選択します。ユーザーが値を編集したり、ランタイム・パラメータ・フォームに異なる値を入力したりすることができるコンボ・ボックスを表示するには、このチェック・ボックスの選択を解除します。
問合せの第1列(パラメータ値が格納されている列)をLOVに表示しない場合は、「第1列を隠す」チェック・ボックスを選択します。第1列を機密保護にする必要がない場合は、このチェック・ボックスの選択を解除します。
注意: Oracle Reports Builderからレポート出力をHTMLファイルに送信するか、Webブラウザで実行してレポート出力をHTMLファイルに送信する場合、第1列の値は「第1列を隠す」を選択してもHTMLソースで見ることができます。Webブラウザでレポートを実行し、値リストに制限がない場合、HTMLパラメータ・フォームには、コンボ・ボックスのかわりにテキスト・フィールドが表示され、そのテキスト・フィールドにコピーして貼り付けることができる静的値も一覧されます。この場合、「第1列を隠す」を選択しても、第1列は常にパラメータ・フォームに表示されます。 |
「OK」をクリックします。
オブジェクト・ナビゲータで、「データ・モデル」ノードを開き、「システム・パラメータ」ノードまたは「ユーザー・パラメータ」ノードを開きます。
PL/SQLの検証トリガーを追加するパラメータの「PL/SQL」アイコンをダブルクリックします。
PL/SQLエディタで、実行時にトリガーされるPL/SQLを定義します。
関連項目
「ツール」→「パラメータ・フォーム・ビルダー」を選択します。
「OK」をクリックして、デフォルト・パラメータ・フォームでペーパー・パラメータ・フォーム・ビューを表示します。
ランタイム・パラメータ・フォームに追加するパラメータを選択するには:
「ツール」→「パラメータ・フォーム・ビルダー」を選択します。
「パラメータ・フォーム・ビルダー」で、ランタイム・パラメータ・フォームに追加するパラメータをクリックします。
必要に応じて、パラメータのラベルを変更します。
「OK」をクリックして、ペーパー・パラメータ・フォーム・ビューを表示します。
レポートの実行時にランタイム・パラメータ・フォームを表示するには:
「編集」→「プリファレンス」を選択し、「プリファレンス」ダイアログ・ボックスを表示します。
「ランタイム設定」ページで、「パラメータ・フォーム」チェック・ボックスが選択されていることを確認します。
注意: パラメータ・フォームはペーパー・レポートでのみ使用できます。ペーパーベースのレポートをWebで表示する場合は、次のいずれかを使用してHTMLのヘッダー・タグおよびフッター・タグを追加することにより、HTMLパラメータ・フォームを作成できます(「BEFORE FORM値」プロパティと「フォーム後値」プロパティ、またはSRW.SET_BEFORE_FORM_HTMLプロシージャとSRW.SET_AFTER_FORM_HTMLプロシージャを使用します)。ただし、Oracle Reports Builderでパラメータ・フォームを使用してJSPベースのWebレポートを設計する場合、JSPを使用するWebレポートでは実行時におけるランタイム・パラメータ・フォームの表示がサポートされていないので、ご注意ください。第1.9.4項「Webレポートのパラメータ・フォームについて」を参照してください。 |
オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックします。
プロパティ・インスペクタの「パラメータ・フォーム・ウィンドウ」ノードで、必要に応じて「ページ数」プロパティを設定します。
バッチ・モードで実行中のレポートにパラメータ(データ範囲など)を渡すには:
問合せでバインド変数を使用して問合せを制限し、コマンドライン・パラメータを使用して問合せに値を渡します。次に例を示します。
問合せ:
SELECT * FROM EMP WHERE HIREDATE BETWEEN :FROM_DATE AND :END_DATE
実行時:
RWRUN REP1 SCOTT/TIGER FROM_DATE='12-JUN-92' END_DATE='24-JUN-92'
HTMLパラメータ・フォームのフィールドを入力イベントまたは選択イベントを使用して作成するには:
オブジェクト・ナビゲータで、「ペーパー・パラメータ・フォーム」ノードの横にあるビュー・アイコンをダブルクリックして、ペーパー・パラメータ・フォーム・ビューを表示します。
パラメータ・フォームのフィールドを作成または編集します(第4.9.1.1項「フィールド・オブジェクトの作成」を参照)。
フィールド・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示します。
「Webの設定」で、「追加属性(HTML)」プロパティを有効なJavaScriptイベント・ハンドラに設定します。
注意: メッセージを表示するときなど、Before FormトリガーでJavaScriptコードを入力することが必要な場合もあります。 |
Before FormトリガーにJavaScriptコードを挿入するには:
オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをダブルクリックして、プロパティ・インスペクタを表示します。
「レポート・エスケープ」の「フォーム前型」プロパティを「テキスト」(JavaScriptを入力する場合)または「ファイル」(ファイルからJavaScriptをインポートする場合)に設定します。
「...」ボタンをクリックして、ダイアログ・ボックスにJavaScriptを入力するか、インポートするJavaScriptを含むHTMLファイルを選択して、「BEFORE FORM値」プロパティを設定します。
例1: データ入力の検証
この例では、レポートがWebで実行されるときに入力の検証で使用される「パラメータ・フォーム」フィールドを設定する方法を示します。この設定によって、エンド・ユーザーが無効なデータをパラメータ・フォーム・フィールドに入力するたびにメッセージが表示されます。
ペーパー・パラメータ・フォーム・ビューで、PF_DEPTNOというパラメータ・フォーム・フィールドを作成します。
フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DEPTNO」に設定します。
「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。
onChange="checkIt(this.form)"
オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「レポート・エスケープ」で、「BEFORE FORM型」プロパティを「テキスト」に設定します。
「BEFORE FORM値」プロパティを次のJavaScriptコードに設定します。
<SCRIPT LANGUAGE = "JavaScript"> function isNumber(inputStr){ for (var i = 0; i < inputStr.length; i++) { var oneChar = inputStr.charAt(i) if (oneChar < "0" || oneChar > "9") { alert("Please enter a numeric value.") return false } } return true } function checkIt(form) { inputStr = form.DEPTNO.value if (isNumber(inputStr)) { // statements if true } else { form.numeric.focus() form.numeric.select() } } </SCRIPT>
レポートがWebで実行されるときに、エンド・ユーザーがランタイム・パラメータ・フォームに部門番号ではなく部門名を入力すると、次のメッセージが表示されます。
Please enter a numeric value.
例2: 選択の検証
この例では、レポートがWebで実行されるときに選択の検証で使用されるパラメータ・フォーム・フィールドを設定する方法を示します。この設定によって、エンド・ユーザーがランタイム・パラメータ・フォームで「DESTYPE」値リストから「PRINTER」を選択するたびにメッセージが表示されます。
ペーパー・パラメータ・フォーム・ビューで、PF_DESTYPEというパラメータ・フォーム・フィールドを作成します。
フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DESTYPE」に設定します。
「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。
onChange="isPrinter(this.form)"
オブジェクト・ナビゲータで、レポート名の横のプロパティ・アイコンをクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「レポート・エスケープ」で、「BEFORE FORM型」プロパティを「テキスト」に設定します。
「BEFORE FORM値」プロパティを次のJavaScriptコードに設定します。
<SCRIPT LANGUAGE = "JavaScript"> function isPrinter(form) { if( form.DESTYPE.options[form.DESTYPE.selectedIndex].value == 'Printer') alert("Please be sure that your print is installed and running.") return true} } </SCRIPT>
実行時に、エンド・ユーザーが「DESTYPE」フィールドの値リストから「PRINTER」を選択すると、次のメッセージが表示されます。
Please be sure that your print is installed and running.
関連項目
パラメータ・フォーム・フィールドのエントリについて、データ入力値をデフォルトで大文字に変更するには:
「ツール」→「パラメータ・フォーム・ビルダー」を選択します。
「パラメータ・フォーム・ビルダー」で、PF_DESFORMATというパラメータ・フォーム・フィールドをDESFORMATというソースで作成します。
「ツール」→「プロパティ・インスペクタ」を選択します。
プロパティ・インスペクタの「Webの設定」で、「追加属性(HTML)」プロパティを次のように設定します。
onChange="this.value=this.value.toUpperCase()"
例: 入力をデフォルトで大文字に変更
この例では、パラメータ・フォーム・フィールドのエントリについて、データ入力値をデフォルトで大文字に指定します。
ペーパー・パラメータ・フォーム・ビューで、PF_DESTYPEというパラメータ・フォーム・フィールドを作成します。
フィールド・オブジェクトをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「パラメータ・フォーム・フィールド」で、「ソース」プロパティを「DESFORMAT」に設定します。
「Webの設定」で、「追加属性(HTML)」プロパティを次のJavaScriptイベント・ハンドラに設定します。
onChange="this.value=this.value.toUpperCase()"
実行時に、エンド・ユーザーが宛先フォーマットとしてpdf
を入力すると、この値はレポートがWebで実行されるときにランタイム・パラメータ・フォームで大文字(PDF)に変更されます。