ダウンロードされるファイル名は、レポート・リージョンのAttributesのダウンロードのセクションにあるファイル名で指定することができます。
ファイル名を指定するためのページ・アイテムを、画面上に設置してみます。今回は対話モード・レポートのリージョンを使って説明します。
例題に使用するアプリケーションは、サンプル・データセットのEMP/DEPTをインストールしたのち、SQLワークショップのオブジェクト・ブラウザより表EMPを選択し、アプリケーションの作成を実行して作成しました。
対話モード・レポートがページ番号4に作成されています。ファイル名を指定するためのページ・アイテムを、対話モード・レポートのリージョンに作成します。名前をP4_FILENAME、タイプをテキスト・フィールド、ラベルはファイル名とします。ここが重要ですが、ソースのセッション・ステートの保持はセッションごと(ディスク)を選択します。
ファイル名が変更されたときに警告が表示されないよう、保存されていない変更の警告を無効にします。
ページ・アイテムのデフォルトはreportとします。
ページ・アイテムP4_FILENAMEが設定/変更されたときに、セッション・ステート(つまりデータベース)に値が保存されるよう、動的アクションを作成します。ページ・アイテムP4_FILENAME上でコンテキスト・メニューを表示させ、動的アクションの作成を実行します。
作成された動的アクションの識別の名前をファイル名の保存とします。タイミングはデフォルトで、イベントが変更、選択タイプがアイテム、アイテムがP4_FILENAMEとなっているはずです。これはそのままにします。
Trueアクションの実行によって、セッション・ステートに値を保存します。識別のアクションとしてサーバー側のコードを実行を選択します。言語はPL/SQLで、PL/SQLコードには単にnullと記載します。
送信するアイテムにP4_FILENAMEを指定します。サーバー側のコードを実行する際に、P4_FILENAMEに設定されている値がブラウザからサーバーに送信されるので、PL/SQLコードとして何も実行しなくても、送信されたアイテムはセッション・ステートに保存されます。そのため、PL/SQLコードはnullで問題ありません。
プロシージャーAPEX_UTIL.SET_SESSION_STATEをサーバー側のコードとして呼び出す必要はありません。
ページ・アイテムを作成したので、対話モード・レポートのAttributesのファイル名に、置換文字列として&P4_FILENAME.を設定します。
以上で設定が完了しました。レポートのダウンロードを行って、今まで実施してきた作業の結果を確認します。
対話モード・レポートのページを開き、ファイル名を入力し、アクション・メニューよりダウンロードを実行します。
ファイルのダウンロードを行わずに、セッション・ステートに保持されている値を確認することによっても、どのようなファイル名が付くのかを確認することができます。
開発者ツール・バーのセッションをクリックします。
デバッグ画面が表示されます。ページ(4番)やビューの選択(ページ・アイテム)を選択/変更したあとは設定をクリックします。