sql >> データベース >  >> RDS >> Oracle

Oracle Apex:インタラクティブレポートでラジオボタンを作成するための段階的なアプローチ

    列リンクを使用してレコードを選択して別のページに移動するか、ラジオボタンとページボタン/リンクを使用してそれを行うことができます。 DEPTテーブルの簡単なレポートを使用して両方を示します。

    方法1:ラジオボタン

    ラジオボタンの場合、apex_item.radiogroupを使用して、レポートに列を追加できます。 値がDEPTNOであるラジオボタンを作成する関数:

    デフォルトでは、ラジオグループのHTMLはセキュリティ上の理由でエスケープされます。これは、必要なものではありませんが、非常にうまく機能していることを示しています。

    columnプロパティを「StandardReportColumn」に変更することで修正できます:

    今、私たちは見る:

    任意の行のラジオボタンをクリックすると、そのボタンが選択され、他の行のボタンの選択が解除されます。

    選択した行の別のページに移動するには、特別なリクエストでページを送信するためのボタンが必要です:

    クリックすると、そのボタンは「SELECT」(私が選択したボタン名)のリクエスト値でページを送信します。したがって、リクエストが「SELECT」のときに起動する送信ページプロセスを記述し、選択されているラジオボタン(存在する場合)を見つけて、選択したDEPTNOをP34_DEPTNOなどの非表示アイテムに保存できます。 APEX配列apex_application.g_f01を調べることで、どのボタンを見つけるかがわかります。 1を渡すことで選択しました apex_item.radiogroupの最初のパラメータとして :

    if apex_application.g_f01.count > 0 then
       -- Array has been populated i.e. user chose a value
       :p34_deptno := apex_application.g_f01(1);
    else 
       -- Array has not been populated i.e. user did not choose a value
       :p34_deptno := null;
    end if;
    

    次に、(a)request ='SELECT'であり、(b)P34_DEPTNOがnullでない場合に、新しいページに移動するブランチを定義できます。

    以上です。かなり多くの作業が必要ですが、それが必要な場合はそれを実行します。

    方法2:列のリンク

    より簡単な方法は、ラジオボタンを省略し、レポート列の1つをリンクにすることです。

    これにより、列(DNAMEを選択)が、選択したDEPTNO値を使用して新しいページに移動するリンクに変わります。

    それでおしまい!非表示のアイテム、ボタン、ページプロセス、ブランチはありません...



    1. 多対多のテーブルMySQLを使用してフィルタリングする

    2. 同じテーブルによって起動された後、トリガーはテーブルを読み取ることができません

    3. LIKEコマンドMysql

    4. lower_case_table_namesMySQL8.0.12の設定