2

現在、Oracle Apex の対話型レポートを使用しています

    Column1    Column2
A1     1          2
A2     2          3
A3     3          4
A4     4          5
----------------------
       10         14

データを表示した後、インタラクティブ レポートの集計関数 SUMを使用して、Column1、Column2 の合計などの計算を行います。

しかし、結果はレポートの最後の行として表示されるため、スクロールして結果を表示する必要があります。

レポートの最初の行として結果を表示するにはどうすればよいですか?

    Column1    Column2
       10         14
----------------------
A1     1          2
A2     2          3
A3     3          4
A4     4          5
4

3 に答える 3

1

これは、JavaScript/jQuery を使用して実行できます (もちろん、これはこれを実行できる多くの方法の 1 つにすぎませんが、機能します)。

レポートの作成に使用される SQL ステートメントとすべてのフィルターおよび検索情報は、WWV_FLOW_WORKSHEET テーブルに格納されます。

その SQL を生成し、そこから必要な列を合計して XML として返すデータベース パッケージを作成します。

jQuery AJAX 呼び出しからそのデータベース パッケージを呼び出し、XML を解析し、jQuery を使用してワークシート テーブルの上部 (必要に応じて下部) に行を追加し、そこに結果を配置します。

JavaScript/jQuery 関数は、問題のワークシートの更新後の動的アクションから呼び出す必要があります。

function htmldbIRTotals(worksheet,columnList) {
    sessionId   = $("#pInstance").val();
    worksheetId = $(worksheet.triggeringElement).find(".a-IRR-table:last").attr("id");
    baseReportId=parseInt("0"+$("#"+worksheetId+"_rpt_saved_reports").val());

    u="'||pkg||'.getTotals?p_worksheet_id="+worksheetId+"&p_base_Report_Id="+baseReportId+"&p_session_id="+sessionId+"&p_columns="+columnList;

    $.post(u,function(data) {
        var xml = $.parseXML(data);
    });         

sessionId、worksheetId、および baseReportId を使用すると、必要なすべての情報を取得できます

columnList は、合計する列のコロン区切りのリストです

さらに工夫を凝らして、さまざまな集計 (つまり、AVG、MIN、MAX など) を追加することもできます。

この例は、以下のリンクにあります。

http://apps.htmldb.com/apps/f?p=htmldb:knowledgebase:::NO:RP:P5_ID:84315

于 2016-04-13T18:30:29.173 に答える
0

私は解決策を見つけました

  1. サブクエリを追加して合計を計算する
  2. 既存の結果との結合
  3. ハイライト機能を使用して新しい行を構成します
于 2015-10-07T03:39:26.873 に答える