2016-12-22 10 views
1

を変更するにはボタンを使用し、レポートソースがのOracle APEXユーザーがボタン、たとえば、ボタン「ソートをクリックすると、私のOracle APEXアプリケーションのレポート]ページでレポートソースのSQL

SELECT VALUE1, VALUE2, VALUE3 ... FROM TABLE1 

とSQLで定義されます'、JOIN、WHERE、ORDER BY節をレポートソースsqlに追加したいと思います。

ボタンクリックイベントの後に新しいレポートソースがどのようにこれを達成ん

SELECT VALUE1, VALUE2, VALUE3 ... FROM TABLE1 
JOIN TABLE2 WHERE ID='123' ORDER BY VALUE2 ASC 

すべきですか?

+1

は、なぜあなたは別の必要がありますかボタンは、フィルタリング、並べ替えを行うには?これは、動的レポート自体によって実現できます。 – learningloop

+0

これは私たちの割り当ての一部です。最近の距離でソートするなど、ソートやフィルタリングを個別に実装する必要がありますが、これはデフォルトでダイナミックレポートには記載されていません。 – Andrew

答えて

1

フィルタリング、並べ替え、表示可能な列リストのみを変更する必要がある場合は、対話型レポート機能を使用します。あなたが本当に変更したい場合は、クエリのテキストは、選択したレポートの実装タイプとして「SQL問合せを戻すPL/SQLファンクション」といくつかのコード

DECLARE 
    l_col_list VARCHAR2(4000); 
    l_join  VARCHAR2(4000); 
    l_where  VARCHAR2(4000); 
BEGIN 
    l_col_List := ....; 
    l_join := ....; 
    l_where := ....; 
    RETURN 'SELECT ' || l_col_list || ' FROM ' || l_join || ' WHERE ' || l_where; 
END; 
を作成

enter image description here

例のページ:apex.oracle.com/pls/apex/f?p=54028:5

+0

こんにちは、あなたの答えに感謝します。ボタンをクリックして動的アクションを実行すると、実行時にソースSQLをどのように変更できますか? – Andrew

+0

隠しアイテムを使用して、select_list、joinおよびwhereの値を格納できます。ボタンをクリックしてページを再送信すると変更されます。 – hinotf

+0

私はApexの新機能として、隠しアイテムの使用についてもう少し説明してください。たとえば、レポートページが読み込まれるとき、デフォルトでは、データテーブルのすべてのデータ行を意味するすべての値が表示されます。ユーザーがカスタムソートボタンをクリックした場合、「最近接距離で最初にソートする」と言えば、ジョインをアクティブにし、どこで、それを順番に表示します。 – Andrew

関連する問題