Oracle Applications開発者ガイド リリース12 E06048-01 | 目次 | 前へ | 次へ |
Oracle Applicationsのプルダウン・メニュー(デフォルト・メニュー)を使用すると、「レコードの消去」などの標準のOracle Formsファンクションや、アプリケーション固有のファンクションを起動できます。
メニューとツールバーは、どちらもTEMPLATEフォームに含まれています。メニューとツールバーのエントリは、現在のコンテキストに応じて自動的に有効または無効になります。
ツールバーの各プルダウン・メニューと各アイコン・ボタンの詳細は、『Oracle Applicationsフォーム・ベース製品のユーザー・インタフェース標準』を参照してください。
使用するメニューやツールバーは、フォームの変更にあわせて切り替わります。次にあげる動作は、特に指定しないかぎりフォームに埋め込まれたフォーム・レベルのトリガーによって自動的に行われます。動作を制御するトリガーは、該当する各エントリとともに表示されます。
ツールバーにも表示されるエントリは次のとおりです。
「新規」(レコード)(WHEN-NEW-BLOCK-INSTANCE)
そのブロックで挿入が可能な場合、有効になります。
「検索...」(WHEN-NEW-RECORD-INSTANCE)
そのブロックで問合せが可能で、まだ問合せ入力モードになっていない場合、有効になります。
「ナビゲータの表示」(WHEN-NEW-RECORD-INSTANCE)
コールしたフォームを除き、有効になります。
「保存」
「常に有効」
「次のステップ」
「印刷...」
「常に有効」
「フォームのクローズ」
「カット」/「コピー」/「ペースト」
これらのメニューやツールバーの項目は、Oracle Formsによって処理されます。
「レコードの消去」
「常に有効」
「レコードの削除」(メニューの「編集」->「削除」に相当)(WHEN-NEW-RECORD-INSTANCE)
そのブロックで削除が可能な場合、有効になります。
「フィールドの編集...」(WHEN-NEW-ITEM-INSTANCE)
現在の項目がテキスト項目のとき、有効になります。
「ズーム」(WHEN-NEW-BLOCK-INSTANCE)
顧客が現在のブロックにズームを定義している場合、有効になります。
「翻訳」
デフォルトでは無効ですが、開発者は必要に応じてAPP_SPECIAL.ENABLEを使用して有効または無効に設定できます。
「添付」(WHEN-NEW-RECORD-INSTANCEおよびWHEN-NEW-BLOCK-INSTANCE)
アイコンは設定されており、添付エントリは添付の定義と実際の添付が存在するかどうかによって、有効または無効になります。
「フォルダ・ツール」
カーソルがフォルダ・ブロック内にある場合に有効になります。開発者は、組合せフォルダ・ブロック内にコードを入力する必要があります。
「ウィンドウ・ヘルプ」
「常に有効」
プルダウン・メニューの「ファイル」から「ヘルプ」までに表示されるエントリは次のとおりです。
「フォームの消去」
「常に有効」
「要約/詳細」
デフォルトでは無効ですが、開発者は必要に応じてAPP_SPECIAL.ENABLEを使用して有効または無効に設定できます。
「保存して続行」
「常に有効」
「ファイル」->「Oracle Applicationsの終了」(WHEN-NEW-RECORD-INSTANCE)
問合せ入力モードではないときに有効です。
「編集」->「複製」->「上のフィールド」(WHEN-NEW-ITEM-INSTANCE)
現在のレコード番号が>1の場合に有効になります。
「編集」->「複製」->「前レコード」(WHEN-NEW-RECORD-INSTANCE)
現在のレコード番号が>1で、レコード・ステータスが「新規」の場合に有効になります。開発者は、フォーム・レベルまたはブロック・レベルのKEY-DUPRECトリガーで、レコード複製の動作をカスタマイズする必要があります。
「編集」->「消去」->「フィールド」(WHEN-NEW-ITEM-INSTANCE)
現在の項目がテキスト項目のとき、有効になります。
「編集」->「消去」->「ブロック」(WHEN-NEW-ITEM-INSTANCE)
「常に有効」
「編集」->「消去」->「フォーム」(WHEN-NEW-ITEM-INSTANCE)
「常に有効」
「編集」->「すべて選択」
「編集」->「すべて選択解除」
「編集」->「作業環境」->「パスワードの変更」
「編集」->「作業環境」->「プロファイル」
「表示」->「すべて検索」(WHEN-NEW-RECORD-INSTANCE)
そのブロックで問合せが可能で、まだ問合せ入力モードになっていない場合、有効になります。
「表示」->「入力して問合せ」->「入力」(WHEN-NEW-BLOCK-INSTANCE)
そのブロックで問合せが可能な場合、有効になります。
「表示」->「入力して問合せ」->「実行」(WHEN-NEW-BLOCK-INSTANCE)
そのブロックで問合せが可能な場合、有効になります。
「表示」->「入力して問合せ」->「取消」(WHEN-NEW-RECORD-INSTANCE)
問合せ入力モードの場合に有効です。
「表示」->「入力して問合せ」->「最終条件の表示」(WHEN-NEW-RECORD-INSTANCE)
問合せ入力モードの場合に有効です。
「表示」->「入力して問合せ」->「一致レコードの件数」(WHEN-NEW-RECORD-INSTANCE)
そのブロックで問合せが可能な場合、有効になります。
「表示」->「レコード」->「第1」
現在のレコード番号が>1の場合に有効になります。
「表示」->「レコード」->「最終」
現在のレコード番号が>1の場合に有効になります。
「表示」->「要求」
「ウィンドウ」->「重ねて表示」
「ウィンドウ」->「上下に並べて表示」
「ウィンドウ」->「左右に並べて表示」
「ヘルプ」->「Oracle Applicationsライブラリ」
「ヘルプ」->「キーボード・ヘルプ」
「ヘルプ」->「診断」
「診断」メニュー全体は、プロファイル・オプション「診断メニュー・エントリを隠す」を使用して制御できます。
「ヘルプ」->「診断」->「データベース・エラーの表示」
「ヘルプ」->「診断」->「検査」
「ヘルプ」->「診断」->「Webエージェントのテスト」
「ヘルプ」->「診断」->「トレース」
「ヘルプ」->「診断」->「デバッグ」
「ヘルプ」->「診断」->「プロパティ」->「項目」
「ヘルプ」->「診断」->「プロパティ」->「フォルダ」
「ヘルプ」->「診断」->「カスタム・コード」->「標準」
「ヘルプ」->「診断」->「カスタム・コード」->「オフ」
「ヘルプ」->「レコード履歴」
現在のブロックに実表またはビューがある場合、有効になります。ベースとなる表にWHO列がない場合、このメニュー・オプションを無効にします。
「ヘルプ」->「Oracle Applicationsについて」
必要な動作が自動的に行われない場合、APP_SPECIAL.ENABLEプロシージャを使用してメニュー項目を動的に制御できます。まず、対象のメニュー項目がデフォルトのメニュー・コントロールの対象となっているかどうかを調べて、デフォルトの動作を無視する必要が本当にあるかを確認します。
そのメニュー項目がデフォルトのメニュー・コントロールによって制御されなていない場合は、該当するトリガー(通常はPRE-BLOCKまたはWHEN-NEW-BLOCK-INSTANCE)を使用します。次のコードを追加します。
app_special.enable('the menu item', PROPERTY_OFF|ON);
終了したら、次のコールによってメニュー項目を元に戻します(通常はPOST-BLOCK)。
app_special.enable('the menu item', PROPERTY_ON|OFF);
次のように、メニュー項目のフルネームをこのコールに含めます。
app_special.enable('CLEAR.FIELD', PROPERTY_OFF);
AU_TOP/resource/<language>領域からFNDMENUをコピーしてメニュー項目のフルネームを決定し、そのコピーを開いてメニュー項目を調べてください。
メニュー項目がデフォルトのメニュー・コントロールに制御されている場合に、その動作を変更(有効または無効化する)するには、リストされているフィールドまたはブロック・レベルのトリガー(WHEN-NEW-BLOCK-INSTANCE、WHEN-NEW-RECORD-INSTANCE、WHEN-NEW-ITEM- INSTANCEのいずれか)を作成します。トリガーの実行階層を「オーバーライド」に設定し、次のコードを追加します。
app_standard.event('TRIGGER_NAME');
app_special.enable('Menu_item', PROPERTY_OFF|ON);
この項目は、デフォルトのメニュー・コントロールによって他のブロックでも正確にリセットされるので、現在のブロック、レコードまたは項目から移動するときに再度設定する必要はありません。
関連項目: APP_SPECIAL: メニューおよびツールバー・コントロール
メニューに関する問題は、次のようなコーディング・ミスが原因となっている場合が多くあります。
項目またはブロック・レベルのトリガーの実行階層が「後」に設定されているが、そのロジックが後にフォーム・レベルのAPP_STANDARD.EVENT( )コールによってリセットされる
項目またはブロック・レベルのトリガーの実行階層が「オーバーライド」に設定されているが、追加されるロジックの前にAPP_STANDARD.EVENT( )コールが含まれていない
「問合せ許可」、「削除可」、「挿入許可」などブロック・レベルのプロパティの設定が正しくない。プロパティを変更する必要があり、メニューを強制的にリフレッシュする必要がある場合(変更後に該当するWHEN-トリガーが起動しないことによる)は、必ずAPP_STANDARD.SYNCHRONIZEをコールします。
実表をリストする制御ブロック(実表として使用する表がないかわりとして)
レコードが1つに限定されているブロックでは、メニュー・オプションの一部を無効にする場合があります。「単一レコード・データ・ブロック」の項では、これを行うタイミングと方法について説明します。
関連項目: シングル・レコード・ブロック
デフォルトでは、このファンクションは「保存」を実行し、次にフォームの「最初のナビゲーション・データ・ブロック」へ移動してから、次のレコードに進みます。この動作は上書きできます。
フォーム・レベルのACCEPTトリガー内にあるコードを次のいずれかのコードに置き換えるか、実行階層を「オーバーライド」に設定して次のうちのどれかをコールするブロック・レベルのACCEPTトリガーを作成します。
APP_STANDARD.EVENT('ACCEPT')。デフォルト動作を実行します。
APP_STANDARD.EVENT('ACCEPT:0')。デフォルト動作を実行します。ただし、カーソルはブロックを変更しません。
APP_STANDARD.EVENT('ACCEPT:<blockname>')。デフォルト動作を実行します。ただし、カーソルは指定のブロックへ移動します。
その他、使用しているフォームに適したコード
ツールバーおよびメニューは、標準フォーム・レベルのWHEN-NEW-RECORD-INSTANCE、WHEN-NEW- BLOCK-INSTANCEおよびWHEN-NEW-ITEM-INSTANCEトリガーによって自動更新されます。ブロックまたは項目のプロパティを変更した場合、該当するトリガーが起動されるまで、メニューおよびツールバーにはこの変更が反映されません。
たとえば、カーソルがすでに位置しているブロックで「挿入許可」というブロック・プロパティをオフに切り替えた場合、次にあげるルーチンを明示的にコールしてメニューとツールバーを同期化する必要があります。
APP_STANDARD.SYNCHRONIZE;
関連項目: APP_STANDARDパッケージ
メニューをカスタマイズして、アプリケーション固有の値を表示できます。メニューでは、トップレベルの3つのスペシャル・メニュー・エントリ(通常は「ツール」、「レポート」、「処理」)の下に、アプリケーション固有のエントリを最大45件表示できます。ツールバーでは、45のスペシャル・メニュー・エントリに対応するアイコン・ボタンを表示できます。
ツールバーに配置されるすべてのアイコンはユーザー・インタフェース標準グループによって承認される必要があり、他のすべてのアイコンとともに保持されます。
関連項目: APP_SPECIAL: メニューおよびツールバー・コントロール
「受注の記帳」という特別なファンクションをメニューとツールバーに追加するとします。「受注の記帳」を最初のスペシャル・メニュー(「ツール」)の先頭エントリとして追加し、さらにツールバーのアイコンにも追加してフォームの「ヘッダー」ブロック内のみで使用できるようにするには、次の手順を実行します。
フォーム・レベルのPRE-FORMトリガーを変更します。
PRE-FORM
app_special.instantiate('SPECIAL1', '&Book Order', 'bkord');
フォームの翻訳を計画している場合は、メッセージ・ディクショナリ、パラメータまたは静的レコード・グループ・セルを使用して、スペシャル・メニューのエントリを格納します。次に値(アプリケーションの翻訳時に翻訳されます)を取得して変数に代入し、その変数をAPP_SPECIALルーチンに渡します。たとえば次のようになります。
app_special.instantiate('SPECIAL1', my_menu_entry, 'bkord');
フォーム・レベルのPRE-BLOCKトリガーを追加します。
PRE-BLOCK
app_special.enable('SPECIAL1',PROPERTY_OFF);
スペシャル・メニュー・エントリを有効化するブロックに、ブロック・レベルのPRE-BLOCKトリガーを追加します。
PRE-BLOCK in HEADER block
app_special.enable('SPECIAL1',PROPERTY_ON);
「受注の記帳」ファンクションを実行するコードを含むブロック・レベルのSPECIAL1ユーザー命名トリガーを追加します。これは、ユーザーがこのメニュー・エントリを選択すると実行されます。
カスタム・フォームのカスタム・アイコン・ファイルは、OA_MEDIA仮想ディレクトリによって指定されたディレクトリ内にある独立した標準.gifファイルである必要があります(詳細は、Webサーバー管理者にお尋ねください)。カスタム・アイコンのアイコン・ファイルを取得すると、フォーム・サーバーにラウンドトリップする必要があるので、パフォーマンスの問題が発生する場合は取得するアイコン数を制限します。
ツールバーに配置されるすべてのOracle Applicationsアイコンは標準グループによって承認される必要があり、他のすべてのアイコンとともに適切な.jarファイルに保持されます。
スペシャル・メニュー・エントリをすべて無効にするには(問合せ入力モード時など)、APP_SPECIAL.ENABLE('SPECIAL', PROPERTY_OFF);をコールします。
Oracle Applicationsでは、すべてのテキスト項目にデフォルトのコンテキスト・メニュー機能が用意されています。現在カーソルが位置しているテキスト項目上にマウス・ポインタを保持したままマウスの右ボタン(またはそれに相当する二次的ボタン)を押すと、Oracle Applicationsで状況依存のポップアップ・メニューが表示されます。デフォルト・メニュー・エントリは次のとおりです。
Cut
Copy
Paste
------
Folder
------
Help
コンテキスト・メニューをカスタマイズして、デフォルト・エントリに加えてアプリケーション固有のエントリを表示できます。コンテキスト・メニューには、最大10件までのアプリケーション固有エントリを表示できます。アプリケーション固有のエントリは、「フォルダ」と「ヘルプ」のエントリ(およびそれらのセパレータ・ライン)の間に表示されます。カスタマイズするエントリの間にセパレータ・ラインを含めることもできます。たとえば、次のようにします。
Cut
Copy
Paste
------------
Folder
------------
First Entry
Second Entry
------------
Third Entry
------------
Help
コンテキスト・メニューにエントリを追加するには、フォーム内の各エントリに少なくとも2つのトリガーが必要になります。第1のトリガーはPRE-POPUP-MENUであり、必要な動作に応じてブロック・レベルか項目レベルのいずれかになります。PRE-POPUP-MENUトリガーはAPP_POPUP.INSTANTIATEルーチンをコールして、メニュー・エントリを設定します。このコールには、メニュー・エントリのファンクション名であるPOPUP1からPOPUP10までの名前が含まれています。トリガーの実行階層を「後」に設定して、フォーム・レベルのPRE-POPUP-MENUトリガー(最初に起動して、現在フォーカスされているフィールドをユーザーがクリックしたかをチェックし、メニューをデフォルト状態に設定する)の後でそのトリガーが起動するようにします。
第2のトリガーは、POPUP1からPOPUP10までの名前が付いた、対応するユーザー命名トリガーです。通常これはブロック・レベルか項目レベルであり、ユーザーがメニュー・エントリを選択したときに実行されるファンクションが含まれます。ポップアップ・メニュー・エントリが表示され、ファンクションを選択すると、そのフィールドが現在無効になっていたとしてもそのファンクションは実行されます。したがってフィールドが無効なときにロジックが実行されない場合は、コード内でテストを実行する必要があります。
「承認」という特別なファンクションをコンテキスト・メニューに追加するとします。「承認」をコンテキスト・メニューの最初のカスタム・エントリとして追加し、フォームの「購買依頼番号」フィールド内のみで使用できるようにするには、次の手順を実行します。
「購買依頼番号」フィールドで、項目レベルのPRE-POPUP-MENUトリガーを変更します。必ず、トリガーの実行階層を「後」に設定してください。
app_popup.instantiate('POPUP1', 'Approve');
フォームの翻訳を計画している場合は、メッセージ・ディクショナリ、パラメータまたは静的レコード・グループ・セルを使用して、スペシャル・メニューのエントリを格納します。次に値(アプリケーションの翻訳時に翻訳されます)を取得して変数に代入し、その変数をAPP_SPECIALルーチンに渡します。たとえば次のようになります。
app_special.instantiate('POPUP1', my_menu_entry);
「承認」ファンクションを実行するコードを含むフィールド・レベルのPOPUP1ユーザー命名トリガーを追加します。これはユーザーがこのメニュー・エントリを選択すると実行されます。
コンテキスト・メニューにエントリを追加するには、APP_POPUPパッケージを使用します。このパッケージを使用して追加したエントリは、テキスト項目のデフォルト・コンテキスト・メニューの「フォルダ」エントリと「ヘルプ」エントリの間に表示されます。
関連項目: コンテキスト・メニュー(ポップアップ・メニュー)のカスタマイズ
要約
procedure APP_SPECIAL.INSTANTIATE(
option_name varchar2,
txt varchar2,
initially_enabled boolean default true,
separator varchar2 default null);
説明
このプロシージャでは、テキスト項目のデフォルト・コンテキスト・メニューに最大10件のカスタム・エントリを追加できます。
ブロック・レベルまたは項目レベルのPRE-POPUP-MENUトリガーでこのプロシージャをコールします。トリガーの実行階層を「後」に設定して、フォーム・レベルのPRE-POPUP-MENUトリガー(最初に起動して、現在フォーカスされているフィールドをユーザーがクリックしたかどうかをチェックし、メニューをデフォルト状態に設定する)の後でそのトリガーが起動するようにします。
引数(入力)
変数 | 説明 |
---|---|
option_name | POPUP1からPOPUP10。POPUP1はカスタマイズ可能なエントリ10件のなかで一番上に表示されます(「フォルダ」エントリのすぐ下)。POPUP10が一番下になります(「ヘルプ」エントリのすぐ上)。 |
txt | メニュー項目のラベル。翻訳済文字列を渡します(フォームの翻訳予定がある場合は、メッセージ・ディクショナリでメッセージを定義し、最初にメッセージを取得して、取得したメッセージ文字列をAPP_POPUPに渡す必要があります)。 |
initially_enabled | メニュー項目のステータスを設定するためのブール値。項目を有効にしない場合は、FALSEを渡します。 |
separator | メニュー・エントリの上にメニューのセパレータ・ラインを表示するには「LINE」を渡します。最初のカスタム・エントリの上(「フォルダ」エントリのすぐ下)にあるセパレータ・ラインは自動的に表示されます。 |
例
APP_POPUP.INSTANTIATE('POPUP1','First Entry');
APP_POPUP.INSTANTIATE('POPUP2','Second Entry', TRUE,
'LINE');
APP_POPUP.INSTANTIATE('POPUP3','Third Entry', FALSE);
これは、メニューで次のように表示されます。
------------
Cut
Copy
Paste
------------
Folder
------------
First Entry
------------
Second Entry
Third Entry (disabled, so greyed out)
------------
Help
------------
メニュー・エントリやツールバーのボタンを有効にしたりカスタマイズするには、APP_SPECIALパッケージを使用します。
関連項目: アプリケーション固有のエントリ:スペシャル・メニュー
要約
procedure APP_SPECIAL.INSTANTIATE(
option_name varchar2,
hint varchar2 default null,
icon varchar2 default null,
initially_enabled boolean default true,
separator varchar2 default null);
説明
このコールは、仕様に従ってスペシャル・メニューを構成します。APP_STANDARD.EVENT('PRE-FORM')へのコールの後、PRE-FORMトリガーでこのファンクションを呼び出します。ユーザーがスペシャル・メニューのエントリを選択するか、対応するツールバー・ボタンを押すと、ファンクションと同じ名前のユーザー命名トリガーが実行されます。
引数(入力)
変数 | 説明 |
---|---|
option_name | SPECIAL1からSPECIAL45を渡して、ファンクションの割当先となるスペシャル・メニューのスロットを示します。SPECIAL1は3つのスペシャル・メニューのうち、最初のスペシャル・メニューの一番上になり、SPECIAL15は最初のスペシャル・メニューの一番下になります。SPECIAL16は3つのスペシャル・メニューのうち、2番目のスペシャル・メニューの一番上になり、SPECIAL30は2番目のスペシャル・メニューの一番下になります。SPECIAL31は3つのスペシャル・メニューのうち、3番目のスペシャル・メニューの一番上になり、SPECIAL45は3番目のスペシャル・メニューの一番下になります。メニュー・エントリのどれかをインスタンス化すると、対応するスペシャル・メニューのトップレベル・メニューが有効になります。 チェック・ボックスは、最初のスペシャル・メニューでのみ使用可能です。チェック・ボックス・エントリは、チェック・ボックスを含むメニュー・エントリを提供します。対応するSPECIALnエントリのかわりにSPECIAL1_CHECKBOXからSPECIAL15_CHECKBOXまでを渡して、ファンクションの割当先となるスペシャル・メニューのスロットを示します。チェック・ボックス・エントリを使用する場合、APP_SPECIAL.SET_CHECKBOXルーチンも使用して、対応するメニュー・エントリのチェック・ボックスの初期値を設定する必要があります。 SPECIAL、SPECIAL_BまたはSPECIAL_Cを渡して、トップレベルのスペシャル・メニュー3つのうち1つを明示的に制御します。SPECIALは3つのスペシャル・メニューのうち最初のメニューの一番上になります。SPECIAL_Bは2番目のスペシャル・メニューの一番上、SPECIAL_Cは3番目のスペシャル・メニューの一番上になります。これは通常、トップレベル・エントリを明示的に有効化または無効化するときに使用します。 |
hint | メニュー項目のラベル。翻訳済文字列を渡します(フォームの翻訳予定がある場合は、メッセージ・ディクショナリでメッセージを定義し、最初にメッセージを取得して、取得したメッセージ文字列をAPP_SPECIALに渡す必要があります)。文字列「&」を含めて、どの文字がその項目のショートカット・キーになるかを定義します(Oracle Forms Form Builderの動作と同じ。例: 「&Book Orders」)。SPECIAL_B(レポート)またはSPECIAL_C(操作)のラベルは変更できますが、SPECIALメニュー(ツール)のラベルは変更できません。また、SPECIAL_BまたはSPECIAL_Cのアクセス・キーを指定することもできません。 |
icon | アイコン・ボタンをファンクションのツールバーに含めるには、そのアイコンの名前を付けます。SPECIAL1からSPECIAL45までのファンクションのどれにでも、対応するツールバー・ボタンを含めることができます(ただし画面の見やすさという点から、ツールバーの追加アイコン数にはかぎりがあります)。対応するツールバー・ボタンがない場合は、NULLを渡します。SPECIALn_CHECKBOXエントリについては、ツールバー上にアイコンを配置できません。 カスタム・フォームのアイコン・ファイルは、OA_MEDIA仮想ディレクトリによって指定されたディレクトリ内のに.gifファイルにする必要があります(詳細は、Webサーバー管理者に連絡してください)。カスタム・アイコンのアイコン・ファイルを取得すると、フォーム・サーバーへのラウンドトリップが必要になるため、パフォーマンスの問題が発生する場合は取得するアイコン数を制限する必要があります。 Oracle Applications製品では、アイコン・ファイルはOracle Applicationsインストールに含まれている.jarファイルにあります。 |
initially_enabled | メニュー項目の初期ステータスを設定するためのブール値。アプリケーション起動時に項目を有効にしない場合は、FALSEを渡します。デフォルト値はTRUEです。 |
separator | メニュー・エントリの上にメニューのセパレータ・ラインを表示するには「LINE」を渡します。「LINE」引数はSPECIAL1(_CHECKBOX)、SPECIAL16、SPECIAL31では無視されます。デフォルトではラインは表示されません。 |
例1
APP_SPECIAL.INSTANTIATE('SPECIAL3','&Book Order', 'POBKORD', TRUE, 'LINE');
例2
app_special.instantiate('SPECIAL12_CHECKBOX',
'Specia&l 12 Check Box with Line',
separator=>'LINE');
app_special.set_checkbox('SPECIAL12_CHECKBOX','TRUE');
これは、メニュー・エントリで次のように表示されます。
-----------------------------------
[x] Speciall 12 Check Box with Line
要約
procedure APP_SPECIAL.ENABLE(
option_name varchar2,
state number);
説明
このコールは、スペシャル・メニューを含むメニュー上の項目(およびそれに対応するツールバー・ボタン)の有効および無効を制御します。これにより、各ブロックのメニューをカスタマイズできます。
フォーム内のほとんどのブロックで特別なファンクションが使用できる場合は、フォーム・レベルのPRE-BLOCKトリガーを作成して、そのファンクションを有効にします。このファンクションが有効でないブロックについては、実行階層を「オーバーライド」に設定してファンクションを無効にし、ブロック・レベルのPRE-BLOCKトリガーをコーディングします。
関連項目: メニューおよびツールバー・エントリ
SAVEを有効または無効にして、「ファイル」->「保存」および「ファイル」->「保存して次を入力」メニュー・エントリを制御します。APP_FORM.QUERY_ONLY MODEをコールすると、「保存」は自動的に無効になります。
メニューにアクセスするためのモーダル・ウィンドウに入力する前に、APP_SPECIAL.ENABLE('MODAL', PROPERTY_OFF)をコールします。ブロックから移動するときは再びPROPERTY_ONにしてENABLEをコールします。PROPERTY_OFFにすると、モーダル・ブロックで禁止されているメニュー項目が無効になります。
ATTACHMENTS、TRANSLATION、SUMMARY/DETAILおよびSELECT_ALLメニュー・エントリの有効および無効を制御できます。
使用可能なレコードが1つしかないブロック内の「実行」メニューでは、SINGLEオプションを使用して、最初のレコード、最後のレコード、前のレコード、および次のレコードの各オプションを無効にできます。
関連項目: シングル・レコード・ブロック
ABOUTオプションを使用して、「ヘルプ」->「レコード履歴」メニュー・オプションを無効にします。
引数(入力)
変数 | 説明 |
---|---|
option_name | 有効にするオプション名。設定可能な値はABOUT、ATTACHMENTS、MODAL、SAVE、SELECT_ALL、SINGLE、SPECIAL1からSPECIAL45まで(またはSPECIALn_CHECKBOXエントリ)、SPECIAL、SPECIAL_B、SPECIAL_C、SUMMARY/DETAIL、TRANSLATION、または任意のメニュー項目のフルネームからのいずれかです。SPECIALをPROPERTY_OFFに設定すると、すべてのスペシャル・メニュー項目は無効になります。 |
state | PROPERTY_ONまたはPROPERTY_OFFのいずれか |
例
APP_SPECIAL.ENABLE('SPECIAL3',PROPERTY_ON);
要約
function APP_SPECIAL.GET_CHECKBOX
(option_name varchar2)
RETURN varchar2;
説明
このプロシージャを使用すると、特定のスペシャル・メニューにあるチェック・ボックスの現在値を取得できます。このプロシージャは、最初のスペシャル・メニューにあるチェック・ボックス・エントリによって実行されるトリガー内でコールします。このファンクションは、チェック・ボックスが選択されているときは文字列「TRUE」、チェック・ボックスの選択が解除されているときは文字列「FALSE」というように、チェック・ボックス・メニュー項目の状態を戻します。メニュー・エントリが存在しない場合、このコールはエラーになります。
引数(入力)
変数 | 説明 |
---|---|
option_name | SPECIAL1_CHECKBOXからSPECIAL45_CHECKBOXまでを渡して、値の取得対象になるスペシャル・メニュー・エントリを示します。 |
例
if (app_special.get_checkbox('SPECIAL3_CHECKBOX')='TRUE') then
fnd_message.debug('Special 3 is True!');
else
fnd_message.debug('Special 3 is False!'); end if;
要約
procedure APP_SPECIAL.SET_CHECKBOX(
option_name varchar2,
new_value varchar2);
説明
このプロシージャを使用すると、特定のスペシャル・メニューあるチェック・ボックスの初期値を設定できます。スペシャル・メニューの該当するチェック・ボックス・メニュー・エントリをインスタンス化した後、このプロシージャをコールします。
引数(入力)
変数 | 説明 |
---|---|
option_name | SPECIAL1_CHECKBOXからSPECIAL15_CHECKBOXまでを渡して、値の設定対象となるスペシャル・メニュー・エントリを示します。 |
new_value | 文字列「TRUE」を渡すとチェック・ボックスが選択され、「FALSE」を渡すとチェック・ボックスの選択が解除されます。 |
例
app_special.instantiate('SPECIAL3_CHECKBOX',
'Spe&cial 3 Box with Line',
'',TRUE,'LINE');
app_special.set_checkbox('SPECIAL3_CHECKBOX','TRUE');
app_special.instantiate('SPECIAL4_CHECKBOX',
'Special &4 Box');
app_special.set_checkbox('SPECIAL4_CHECKBOX','TRUE');