アプリケーションを設計する際、ボタンを使用して、特定のページまたはURLを表示したり、情報をポストまたは処理するようにできます(たとえば、「作成」、「取消」、「次へ」、「前へ」または「削除」ボタンを作成します)。
トピック:
ボタンでは、様々なタイプの操作を実行できます。次の操作を実行できます。
ページの送信(フォーム・ページに対する変更の保存など)
異なるページまたはカスタムURLのいずれかへのリダイレクト
実行しない(ボタンの動作が「動的アクション」で定義されていない場合など)。
この項では、ページ・デザイナでボタンを管理する方法について説明します。
トピック:
開発者は、「保存されていない変更の警告」ボタンを使用して、ユーザーがボタンをクリックしてページから移動しようとしたときに、保存されていない変更について警告できます。
「保存されていない変更の警告」属性を構成するには、次のステップを実行します。
ヒント:
「保存されていない変更の警告」属性は、apex.page.warnOnUnsavedChanges
APIを使用して実装されます。
関連項目:
保存されていない変更についてユーザーに警告するためのページ属性の構成およびOracle Application Express APIリファレンス
開発者は、コンポーネント・ビューでボタンを作成および編集します。
トピック:
コンポーネント・ビューでリージョン・ボタンを作成するには、次のステップを実行します。
適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
必要に応じて、リージョンを作成します。リージョンについてを参照してください。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、ボタンのリージョンを選択して「次へ」をクリックします。
「ボタン位置」で、次のステップを実行します。
位置 - このボタンの位置を選択します。
リージョン位置にボタンの作成: リージョン位置にボタンを配置する場合は、このオプションを選択します。リージョン位置は、リージョン・テンプレートで定義された位置です。
このリージョン・アイテムで表示されるボタンの作成: ページ・アイテム内またはページ・アイテム間にボタンを表示する場合は、このオプションを選択します(たとえば、フォーム・フィールドの横にボタンを直接追加する場合)。
「次へ」をクリックします。
「ボタン属性」は、次のようにします。
ヒント:
属性の詳細は、フィールドレベル・ヘルプを参照してください。フィールドレベル・ヘルプの表示を参照してください。
ボタン名: 対象のボタンの名前を入力します。「ページの送信」のアクションを行うボタンでは、ボタンの名前がページ・リクエストの値になります。たとえば、ボタンにFLOW_RESET_BUTTON
という名前を付けると、送信を行わずにカレント・ページをリセットすることがボタンの目的になります。
ラベル: ボタンに表示するラベルを入力します。
ボタン・テンプレート: どのテンプレートでボタンの表示を制御するかを定義します。ボタン・テンプレートは、テンプレート・ページで定義します。少なくとも1つのボタン・テンプレートを定義しておかないと、ボタン・テンプレートを使用できません。
ボタン・タイプ: この属性を使用して、ボタン・テンプレートの「標準」または「ホット」いずれかのテンプレートを選択します。
「ホット」を選択すると、ボタン・テンプレートの「ホット・テンプレート」属性に格納されたテンプレートを使用してボタンがレンダリングされます。値が定義されない場合、標準のボタン・テンプレートが使用されます。
ボタン属性: 入力したテキストは、HTML要素の定義に追加されます。次の例では、テキスト・ボタンのクラスを設定しています。
class="myclass"
テンプレートに基づくボタンの場合、テンプレートに#BUTTON_ATTRIBUTES#
置換文字列を含める必要があります。これを使用してタブの停止を制御できます。次に例を示します。
tabindex="3"
「次へ」をクリックします。
「表示プロパティ」が表示されます。「表示プロパティ」に表示されるオプションは、選択されたリージョン位置によって決まります。
「表示プロパティ」で、次のステップを実行します。
ボタン位置が「リージョン位置にボタンの作成」の場合は、次の項目を指定します。
順序: このコンポーネントの順序を入力します。これによって評価の順序が決まります。
位置: このボタンの位置を選択します。
位置合せ: 「右」または「左」を選択します。
「次へ」をクリックします。
ボタン位置が「このリージョン・アイテムで表示されるボタンの作成」の場合は、次の項目を指定します。
順序: このコンポーネントの順序を入力します。これによって評価の順序が決まります。
「次へ」をクリックします。
「クリックされたときのアクション」で、次のステップを実行します。
ヒント:
属性の詳細は、フィールドレベル・ヘルプを参照してください。フィールドレベル・ヘルプの表示を参照してください。
アクション: ボタンがクリックされたときの動作を選択します。
検証の実行: 「検証の実行」では、ページ送信時の検証の実行を制御します。たとえば、ユーザーがレコードを削除しているときに、「削除」ボタンに無関係な検証エラー・メッセージを表示しないようにする場合に使用できます。
この設定に関係なく特定の検証を常に実行する場合、検証属性の「常に実行」を「はい」に設定します。詳細は、検証の実行タイミングの決定についてを参照してください。
「次へ」をクリックします。
「条件付き表示」で、対象のコンポーネントをレンダリングするうえで満たす必要がある条件タイプをリストから選択します。
「ボタンの作成」をクリックします。
関連項目:
コンポーネント・ビューでは、複数のボタンの作成ウィザードを使用して、同じリージョン内に複数の「ページの送信」ボタンを一度に作成できます。
一度に複数のボタンを作成するには、次のステップを実行します。
開発者は、コンポーネント・ビューでボタンを編集できます。
トピック:
ページ・ボタンの編集ページの「ボタンがクリックされたときのアクション」、「検証の実行」属性は、ページを送信するときの検証の実行を制御します。たとえば、ユーザーがレコードを削除しているときに、「削除」ボタンに無関係な検証エラー・メッセージを表示しないようにする場合に使用できます。
「検証の実行」では、次を選択できます。
はい: ページが送信され、この属性が「はい」に設定されている場合、そのページに定義されているすべての検証とすべての組込みの検証が実行されます(たとえば、必須の値が設定されていることを確認するためや、その値が有効な数値や日付であるかどうかを判別するため)。
いいえ: 「いいえ」に設定すると、定義済の検証と組込みの検証はいずれも実行されません。
この設定に関係なく特定の検証を常に実行する場合、検証属性の「常に実行」を「はい」に設定します。
関連項目:
ボタンを条件付きで表示するには、「ページ・ボタンの編集」ページの属性を編集します。
ボタンを条件付きで表示するには、次のステップを実行します。
リクエストを確認する最も有効な方法は、ボタンからJavaScriptをコールする方法です。実際、Oracle Application Expressでは、ほぼすべてのオブジェクトの削除操作にこの方法を使用します。たとえば、ボタンを削除する場合は、リクエストの確認を求めるJavaScriptメッセージが表示されます。次に例を示します。
function deleteConfirm(msg) { var confDel = msg; if(confDel ==null) confDel= confirm("Would you like to perform this delete action?"); else confDel= confirm(msg); if (confDel== true) doSubmit('Delete'); }
この例では、削除操作を確認するファンクションを作成した後、ボタンからそのファンクションをコールします。このファンクションは、オプションでページを送信し、内部変数:REQUEST
の値をDelete
に設定するため、リクエストの値に基づいて条件付きで実行されるプロセスを使用して削除を実行します。
ボタンを作成する際に、「URLにリダイレクト」を選択する必要があります。その後、URLターゲットを次のように指定します。
javascript:confirmDelete('Would you like to perform this delete action?');
JavaScriptコードを実行する場合は、動的アクションを使用することをお薦めします。次に例を示します。
「動的アクションで定義」のアクションを実行するボタンを作成します。コンポーネント・ビューでのボタンの作成を参照してください。
動的アクションを作成し、アクション・タイプ「JavaScriptコードの実行」を使用して前述のコードを実行します。たとえば、次のようにします。
if (confirm("Would you like to perform this delete action?")) { apex.submit('Delete'); }
この例ではJavaScriptを使用していますが、JavaScriptを使用しなくても、この例を簡単に実装できます。かわりに、同様に翻訳可能な宣言的アクションの「確認」と「ページの送信」を使用できます。詳細は、動的アクションの管理を参照してください。
「送信」ボタン(送信ページのアクションが指定されたボタン)に付けた名前によって、ページの送信時に組込み属性REQUEST
の値が決まります。バインド変数:REQUEST
を使用して、PL/SQL内のREQUEST
の値を参照できます。このバインド変数を使用して、ユーザーがクリックするボタンに応じてプロセス、検証またはブランチを条件付きで実行できます。ユーザーがボタンをクリックした際に実行されるプロセスを作成することもできます。また、より複雑な条件も使用できます。次に例を示します。
If :REQUEST in ('EDIT','DELETE') then ... If :REQUEST != 'DELETE' then ...
これらの例では、「EDIT」および「DELETE」という名前のボタンが存在すると想定します。この構文は、PL/SQL式の条件にも使用できます。ただし、ボタン名の大/小文字が保持されることに注意してください。ボタン名をLOGINに指定した場合、名前「Login」を検索するリクエストは失敗します。次に例を示します。
<input type="BUTTON" value="Finish" onclick="apex.submit('Finish');">
この例では、FinishはREQUEST
の名前で、大/小文字が区別されます。
各ページには、任意の数のブランチを含めることができます。ブランチは、アプリケーションの他のページまたはURLにリンクします。Application Expressでは、ページ・プロセス中の異なる時点でブランチが検討されます。プロセス前、計算前、検証前およびプロセス後のどの時点でブランチするかを選択できます。アプリケーション・ビルダーの他のコントロールと同様に、ブランチ処理には条件を設定できます。たとえば、ユーザーがボタンをクリックした場合にブランチできます。ブランチを作成する場合は、ブランチを特定のボタンに関連付けます。ブランチは、ユーザーがボタンをクリックした場合にのみ検討されます。
関連項目: