Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

DA refresh region of interactive report (IR) will reset the pagination

gerdp-OracleOct 21 2013 — edited Oct 28 2013

Hope sombody can help me with this.

I use a jQuery Call in a DA to change a IR. This works fine. Since I do not want to refresh the entire page but only the IR, I refresh the IR Region within the DA and then cancel the request (cancels page submit). This also works but it will always reset the pagination of the IR.

When I do a page submit instead of th regeion refresh, the pagination is not changed.

Does sombody have a solution to keep the current page of the IR after a region refresh from a DA?

We are using Apex 4.2

Thanks

Gerd

This post has been answered by anai on Oct 22 2013
Jump to Answer

Comments

anai
Answer

Yes, I had the same problem. I ended up using a custom javascript function for refreshing the IR.

First, you have to set the pagination of your IR to Row Ranges X to Y of Z.

Then you place this code in your page, Javascript -> Function and Global Variable Declaration:

function refreshIR() {

  var min_row, max_row, total_rows, rows_fetched, pagination;

  pagination = $.trim($("#apexir_DATA_PANEL>table>tbody>tr>td>span.fielddata").text());

  min_row = pagination.split(' ')[0];

  rows_fetched = $("li.dhtmlSubMenuSelected").text();

  max_row = rows_fetched;

  total_rows = pagination.split(' ')[4];

  if (isNaN(total_rows) || parseInt(total_rows, 10) <= parseInt(rows_fetched, 10) || isNaN(rows_fetched.toLowerCase())) {

  gReport.pull();

  } else {

  gReport.navigate.paginate('pgR_min_row=' + min_row + 'max_rows=' + max_row + 'rows_fetched=' + rows_fetched);

  }

}

And finally, when you want to refresh your IR, in your DA use Execute JavaScript code:

refreshIR();

Hope this helps.

Marked as Answer by gerdp-Oracle · Sep 27 2020
gerdp-Oracle

Thanks very much for this. It works fine. I have 2 questions if you don't mind:

1. can you explain why li.dhtmlSubMenuSelected points to rowsSelected. Is it because this is the first submenu entry in the ir menu?

2. in gReport.navigate.paginate why is max_rows = rows_fetches instead of min_rows + rows_fetched

Thanks very much for you help!

Gerd

anai

I have written that code a long time ago and it does need some improvement.

1. What I should have written was

rows_fetched = $("#apexir_ROWS_PER_PAGE_MENU>li.dhtmlSubMenuSelected").text();

That way I get exactly the selected entry in the Rows per page submenu.

2. I didn't really understand your question, but please notice that the plus sign there is actually string concatenation, not addition.

I was thinking of cleaning up that code and creating a plugin out of it in the next couple of days, so if you're interested, I could let you know when I'm done.

(Also, I apologize for my English, it's not my mother tongue.)

anai

Here is the plugin that does exactly that, in case somebody else needs it.

Refresh Interactive Report without resetting the pagination:

http://www.apex-plugin.com/oracle-apex-plugins/dynamic-action-plugin/refresh-interactive-report-1.0_361.html

1 - 4
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Nov 25 2013
Added on Oct 21 2013
4 comments
10,007 views