1

アプリケーション内(Oracle ApEx 4.1を使用)のさまざまなページに、さまざまなインタラクティブレポートがあります。

これらのレポートのそれぞれについて、私はページネーションを持っていますが、レポートごとにページのどこかに表示されるレコードの総数を、各レポートにも提供するように求められました。

ページ0でこの機能を実行する方法はありますか、それとも各レポートの合計レコードを個別に計算する必要がありますか?

ありがとう。

=============================

**トム-このコメントを下に置くのに問題があったので、ここに追加しました:

こんにちはトム、あなたへの私の前のコメントで述べたように、私は新しい「p_use_filter」ブールパラメータを追加し、これをFALSEに設定し、すべて正常に動作するので、ありがとうございます。

今、私はあなたのために別のクエリを持っています、そしてこれがまだあなたが取り組んでいるかもしれないものであるかどうかはわかりませんが、IRレポートの1つで、私のwhere条件内で、私はバインド変数を使用していますが、レポートフィールドをドリルダウンするとバインド変数STRINGを使用して他のレポートに渡し、バックエンドSQLステートメントを確認すると、SQLに次のようなWHERE条件があるため、INVALIDRELATIONALOPERATORエラーが発生します。

WHERE (CUSTOMER_NAME = ABC AIRLINES LTD )

つまり、ABC AIRLINES LTDを一重引用符なしでSQLを解析しようとしていますか?

トムのアイデア。

ありがとう。

4

2 に答える 2

2

IR sql を取得し、その SQL を でラップして実行することを提案しますSELECT COUNT(*) from (...)
現在、apex 4.2 では、レポート sql を取得できる apex_ir パッケージを取得しますが、4.2 より前では、そのようなパッケージはありません。私は自分用に 1 つ作成し、いくつかの目的で使用しました (たとえば、これらについて少しブログを書いています)。いくつかのクリーニングが必要なため、コードの現在の状態をお詫びしますが、機能しており、コメントがたくさんあります。すべてのフィルターを解析し、再度 SQL に変換します。計算やグループ化は処理しません。ケーブルのどこかにねじれが残っている可能性がありますが、それをどうしたいかによって異なります。この場合、問題にはなりません。

Git リンク

基本的に、パッケージをスキーマにインストールし、次のようなコードを使用して実行します。

DECLARE
   lNullTable  DBMS_SQL.VARCHAR2_TABLE;
   lDebug      VARCHAR2(4000);
   lSql        VARCHAR2(4000);
   lCount      NUMBER;
BEGIN
   lSql := apex_ir_pkg.get_ir_sql
      (
         p_app_id             => :APP_ID,
         p_session_id         => :APP_SESSION,
         p_page_id            => :APP_PAGE_ID,
         p_report_id          => NULL,
         p_app_user           => :APP_USER,
         p_use_session_state  => TRUE,
         p_binds              => lNullTable,
         p_binds_val          => lNullTable,
         p_incl_order_by      => FALSE,
         p_debug              => lDebug,
      );

   lSql := 'SELECT count(*) FROM ('||lSql||')';

   EXECUTE IMMEDIATE lSql INTO lCount;
END;

何か問題が発生して解決できない場合は、私に連絡してください。私にできることを確認します。コードのオーバーホールが必要であることはわかっていますが、まだ行っていません。

于 2012-11-26T20:08:53.227 に答える
0

リージョンのヘッダーまたはフッターで #TOTAL_ROWS# を使用できますが、初期値のみが表示されます。私はクラシックレポートに使用します。IR JavaScript ではうまく機能しないと思います。それは部分的なページの更新です。参照: https://forums.oracle.com/forums/thread.jspa?threadID=2239712およびhttp://docs.oracle.com/cd/E23903_01/doc/doc.41/e21674/ui_region.htm#CHDBCGJH

于 2012-11-22T18:20:03.840 に答える