Is it Possible to "Interrupt" an Interactive Report Refresh

We have a particular Interactive Report for which we want to enforce two column filters as mandatory. We've already figured out how to examine the current filters and determine if they are set.
What we need now is some mechanism by which if the user changes the filter criteria (for example deleting one of these mandatory filters), we can stop the APEX refresh and produce an error message. For example, could some such logic be placed in the Before Refresh event?
Does anyone have any ideas how this might be done?
-Joe

I've looked at this for a bit but I don't think there is any even remotely fair way to deal with this. The ajax calls for IRs do not use jQuery.ajax calls (unfortunate) but use a call to htmldb_Get.getAsync. An XmlHttpRequest object is created there but is of course never exposed, thus not allowing interaction on it, and is probably too deeprooted in the apex javascript to change. If it was using jQuery you could've tried to use the ajaxSetup, such as described in javascript - Abort Ajax requests using jQuery - Stack Overflow or Stop all active ajax requests in jQuery - Stack Overflow (and all variations when looking for ajax aborting).
There is nothing you can do from say the before refresh event since canceling that is only canceling the before refresh event, not the actual refresh.
I believe that simply overriding some function on the gReport object might serve you best. Keeping in mind it is best not fiddled with and is unsupported etc etc - I suppose you know the drill by now.
There are a couple of candidates for this. "gReport.action" for example: you could simply block of any ajax action on the report before it happens: remove filters, add filters, search, pull - without having to worry about xmlhttprequests. I explored some other routes but honestly they became too complex for what it was.
//first store the original _Get function. We can't lose this because we still need it.
var old_Get = gReport._Get;
//now override the existing function with our own implementation. Preserve the signature so that the params can
//be passed on
gReport._Get = function(p_widget_mod,p_widget_action,p_widget_action_mod,p_id,p_value,p_x05,p_x06,p_x07,p_x08,p_x09,p_x10){
  //lets do some arbitrary check in here
  if(p_widget_mod == "PULL"){
     //now nothing will happen when you want to pull the report
     return false;
  //and dont forget to at least execute the original function !
  old_Get(p_widget_mod,p_widget_action,p_widget_action_mod,p_id,p_value,p_x05,p_x06,p_x07,p_x08,p_x09,p_x10);
Now when executing
gReport.pull()
nothing will happen.
You'll need to modify this to suit your needs though. If this is taking it too far for you then you may have hit a brick wall though, I can't see any other option personally and so far.

Similar Messages

  • Is it possible to bypass the interactive report

    Hi -
    Is there a way to skip the interactive report and go directly to page 2 of my application if the report only returns one row?
    Thanks,
    Matt

    user1055564 wrote:
    Could you give me an example?I can't give you an example because I haven't actually done this, and we're trying to establish connectivity for my new project (no Apex connectivity yet).
    I'm thinking of something like having region item that's populated by a query, probably the count you are lookng for. The region header might have some JavaScript code looking at the count value as a substitution variable or text value you assign and possibly perform a redirect based on that value as set up in the page header.

  • Is it possible to sort an interactive report with a default column ?

    Hi,
    I have a nice request used with an interactive report.
    select "ID",
    "DATE_CREATION",
    "SERVICE",
    "RESPONSABLE",
    "NATURE_CONTRAT",
    "SOCIETE",
    "DATE_DEBUT",
    "DATE_FIN",
    "DELAI_RENOUVELLEMENT"
    from "#OWNER#"."CONTRATS_MAINTENANCE"
    order by DATE_FIN descUnfortunately, the interactive report does not displays using the order into the SLQ query.
    I tried to de select the "sort" option of each other columns into the Column attributes Section, but without any improvement. If I remove the order statement from the SQL query, nothing changes in the order.
    Do you have an idea on how to display the lines in the order of the sql query ?
    Thank you for your knid answers !
    Chrstian

    Christian,
    This can be a little tricky at first. Try this:
    1. Remove the order by clause from the query.
    2. Log out of the application, not the builder, just the application.
    3. Log back in and try using the options in the interactive report to sort the information.
    Does it work? If so:
    4. Get the order the way you would like it as the default. Note: you get more sort options if you use the Action Menu (grind wheel) and selecting Sort over just clicking the column headers.
    5. Save the report by selecting the Save Report option from the Action Menu. If you see a drop down, save the report as the "default".
    6. Log out of the application again and back in.
    Does it work?
    Regards,
    Dan
    http://danielmcghan.us
    http://sourceforge.net/projects/tapigen
    You can reward this reply by marking it as either Helpful or Correct ;-)

  • Interactive Report Refresh and JQuery Plugin Issue

    Hi,
    I have Interactive report in my page. I am using jQuery context menu plugin , so when user right click on a column he get an option to add , delete , update and other option.
    javascript pseude code for context menu
    $(function(){
         context_menu();
    function context_menu(){
      $('.Col1').contextMenu();
    }Suppose User Selects Delete option. In this case jQuery popup appears and users enter the data which is saved to table using on demand process. After that using gReport.search('SEARCH') , I am refreshing the page...
    Now the issue arises ------ Now when i right click the column my jQuery context menu is not working ...
    Workaround used ----- I added onmouseover=context_menu() function to the column link... and it working fine..
    Now my question is ... each time the user moves the mouse over column it will run context_menu() function ..... Will there be any adverse issue .. or memory leakage issue...
    Please advice..
    Thanks,
    shijesh

    Hi,
    I think there should not be any issues to do that way. You need of course test it carefully.
    You can run stuff after IR refresh also on Apex 3.2.
    See e.g. this post
    Apex 3.2 hook javascripts to IR and execute those when report is refreshed
    I have included that to my jQuery "plugin" for Apex 3.2
    http://dbswh.webhop.net/apex/f?p=BLOG:READ:0::::ARTICLE:127800346959520
    Regards,
    Jari

  • Interactive Report Chart Missing Labels

    I have a simple horizontal bar chart on an Interactive Report... There are 22 bars but only half of them (11) have labels. Bars 1, 3, 5, 7, etc have labels. If I click on the other bars I can see their labels but this is of no use when printing. The same issue happens frequently in various other charts whenever there are more than a few items to display. Our users have to download the reports to Excel and create the charts there in order to print or make presentations.

    Hi Rick,
    The behaviour you are seeing, where not all labels are displayed, is expected given the size of the region the chart is being displayed in and the number of labels you wish to display. AnyChart will automatically handle the display of the labels in this case, and it is not possible to customise an Interactive Report chart to override this behaviour. My suggestion would be that you create a new Chart region, where you have more control over the chart you generate. Please refer to the section Creating Charts - http://download.oracle.com/docs/cd/E17556_01/doc/user.40/e15517/app_comp.htm#CHDFEJAB - in Chapter 8 - Adding Application Components of the APEX User's Guide for more information. Once you have generated your chart, you can increase the height of your chart on the Chart Attributes page, and this will allow for the display of additional labels on the X-axis of your chart. Alternatively, you could look at the option of using the AnyChart axis label Stager mode, as outlined in the online AnyChart documentation here: http://anychart.com/products/anychart/docs/users-guide/axes-labels-text-formatting.html#stager. As the mode name suggests, the positioning of the axis labels will be staggered, which will allow for the display of all of your labels without having to adjust the chart height. For your presentations, you can easily create the chart regions on the same page as your existing Interactive Reports, and you'll also have the ability to print the charts, save them as an image or as PDF.
    I hope this helps.
    Regards,
    Hilary

  • Interactive report sort text as number

    Hello,
    I was wondering if it is possible in an Apex interactive report to sort text as number?
    For example, a series of text rows:
    4
    10
    2
    would sort as:
    10
    2
    4
    if it were text. What I would like to see is:
    2
    4
    10
    How could this be done?
    Thanks.

    If your column contains numbers only, you could use TO_NUMBER (column_name) column_name to convert it to a numeric value and it will sort it properly.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.apress.com/9781430235125
    http://apex.oracle.com/pls/otn/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • Interactive report & htmldb_Get

    I have 3 pages in my application:
    1. Main
    2. Report
    3. Interactive report
    The source SQL code of Report is the same as Interactive report.
    The HTML header&footer of Report is the same as Interactive report.
    I use function load_report for calling the Report on the Main page:
    function load_report () {
    var get = new htmldb_Get(null,$x('pFlowId').value,null,2);
    gReturn = get.get(null,'-div id="IREP"-', '-/div-');
    get = null;
    $x('AjaxReport').innerHTML = gReturn;
    return;
    It's work fine, but when I try calling the Interactive report:
    var get = new htmldb_Get(null,$x('pFlowId').value,null,3);
    it's not work.
    Is't possible the calling the Interactive report with htmldb_Get?
    Edited by: Senleft on 04.03.2009 22:48
    I changed "<" to "-" in string gReturn = get.get(null,'-div id="IREP"-', '-/div-'); because ">" is not displayed

    Before calling Interactive report gReturn has the next value:
    "---div id="apexir_WORKSHEET_REGION" class="apex_worksheet"--- ---div id="apexir_DETAIL" class="apex_detail"---"
    I changed '<' ' to' '---' because '><' is not displayed
    Before calling Report gReturn has the next value (I'm sorry but the header column is on Russian):
    <div id="report_42336412725658679_catch"><table cellpadding="0" border="0" cellspacing="0" summary="" id="report_R42336412725658679"><tr><td></td></tr>
    <tr><td><table cellpadding="0" border="0" cellspacing="0" summary="" class="t17Standard">
    <tr ><th class="t17ReportHeader" id="Подвид фасада">Подвид фасада</th><th class="t17ReportHeader" id="Стандарт МДФ">Стандарт МДФ</th><th class="t17ReportHeader" id="Тип МДФ">Тип МДФ</th><th class="t17ReportHeader" id="Потребность">Потребность</th><th class="t17ReportHeader" id="Расход">Расход</th></tr>
    <tr onmouseover="row_mouse_over42336412725658679(this, 1)" onmouseout="row_mouse_out42336412725658679(this, 1)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Стандарт</td><td headers="Тип МДФ" class="t17data">19 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr><tr onmouseover="row_mouse_over42336412725658679(this, 2)" onmouseout="row_mouse_out42336412725658679(this, 2)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Нестандарт</td><td headers="Тип МДФ" class="t17data">19 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr><tr onmouseover="row_mouse_over42336412725658679(this, 3)" onmouseout="row_mouse_out42336412725658679(this, 3)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Нестандарт</td><td headers="Тип МДФ" class="t17data">25 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr><tr onmouseover="row_mouse_over42336412725658679(this, 4)" onmouseout="row_mouse_out42336412725658679(this, 4)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Стандарт</td><td headers="Тип МДФ" class="t17data">25 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr><tr onmouseover="row_mouse_over42336412725658679(this, 5)" onmouseout="row_mouse_out42336412725658679(this, 5)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Нестандарт</td><td headers="Тип МДФ" class="t17data">4 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr><tr onmouseover="row_mouse_over42336412725658679(this, 6)" onmouseout="row_mouse_out42336412725658679(this, 6)"><td headers="Подвид фасада" class="t17data">Декоративные элементы 1</td><td headers="Стандарт МДФ" class="t17data">Стандарт</td><td headers="Тип МДФ" class="t17data">4 мм</td><td headers="Потребность" class="t17data">1,7</td><td headers="Расход" class="t17data">1,7</td></tr></table><div class="t17CVS">

  • Enhancement of CRM Interactive Reports

    I have read it somewhere that we can enhance the interactive reports with ZFIELDs. I just want to get an idea that in our scenario we have separate ZTABLE which has this ZFIELD so is it possible to enhance any interactive report with this field?
    P.S. We are in our analysis phase so we are exploring different possibilities regarding crm analytics.

    Dear Srinivas,
    One of the purposes of CRM Interactive reporting is quick-enablement of frequently used reports. Ofcourse these differ in all aspects with BI reports. These are faster and accurate when the data population is small.
    It is not suggested to use dedicated BI server for Interactive reporting.
    Anyways we can use both Interactive and BI reports simultaneously as per your client's requirement.
    Hope it helps.
    Thanks
    Vikas
    Edited by: Vikas Patil on Jun 7, 2010 5:58 PM
    Edited by: Vikas Patil on Jun 7, 2010 5:59 PM

  • Pre populating search in interactive report

    Hi Folks
    I an using an interactive report which returns a very large amount of data, which means that just accessing the report page can take 10 to 15 minutes and as you can imagine the users are not very happy. So, I was wondering if it is possible to set an interactive report so that is does not return anything when entering the page but only returns when a search is submitted?
    I thought of maybe having a page inbetween access the interactive report and the link to the report where you could somehow enter your search term and submit it to then pre-populate the search field in the interactive report....I am sure there must be an easier way...any ideas?
    Thanks
    Lynn

    Do you need all of the features of an interactive report? You could add a text field and set your query to look at the value in the next field via a standard SQL report.
    In your current interactive report are you trying to display all rows at once? Even if you query on specific values in the search bar is your result set taking a long time?

  • Interactive report with single row select

    Hi,
    Is it possible to create an interactive report that has a single row select column i.e. you can only select one row and when you select another row it deselects any row selected before, simular to a list of values but with the functionionality of an IR report.
    Thanks in advance

    Hi,
    Try adding this to the query of your report:
    select ...
           apex_item.radiogroup(1, some_unique_column) sel
    from ...You didn't say how you want to use this, but when the page is submitted the array apex_application.g_f01 may contain either none or exactly one element, which will be the some_unique_column value of the selected row.
    Luis

  • Interactive Report Pagination and count

    Hello,
    I have two situations I am hoping someone could help me with.
    Problem 1
    I am using interactive reports in APEX 3.2.1 and I have reports with rows >= 6000. currently pagination on reports is set to:
    X to Y of Z
    such that when the report is rendered it looks something like 1 - 15 of 6203 >.
    Is it possible to add 'objects' or 'buttons' that allow me to navigate directly to the last row or/first row e.g
    |<< < 1 - 15 of 6203 > >>|
    such that |<< or >>| navigates to the very end row while < or > navigates to the next set or rows? would this be javascript? if so, does anyone have code for it? unfortunately not only am I new to APEX, I am a novice at javascript as well.
    Problem 2
    Is it possible to have APEX interactive reports return a distinct count on fields that are not unique? All counts are equating to the count of the unique ID and has had me pulling my hair
    Any help is most welcome,
    Mufudzi

    Hi Mike,
    I have not managed to get 'Distinct count' to work. Unfortunately, the project I am working on for this neither has the time or budget to investigate further but hopefully I will be able to get a solution from someone as a "nice-to-know".
    Regarding the first problem I posted on, managed to come up with a solution using some html. Basically I created two html scripts (one above the report and the other below the pagination buttons at the bottom of the report)
    - for the top of report html I used the following code:
    +<td nowrap class="t13RegionBody"><>a href="#endofpage"<>End of Page</a></td>+
    +<td bgcolor="#EEEEEE" nowrap><a name="topofpage"><font color="#EEEEEE">Top of Page</font></a></td>+
    and called the script topofpage
    - for the bottom of report html script I called it endofpage and used the following code:
    +<td nowrap class="t13RegionBody"><>a href="#topofpage"<>Top of Page</a></td>+
    +<td nowrap bgcolor="#EEEEEE"><A NAME="endofpage"><font color="#EEEEEE">End of Page</font></A></td>+
    What the script does is when the "End of Page" hyperlink is clicked, it takes the user to the bottom of the screen/page and vice versa for the "Top of Page" hyperlink situated at the bottom of the page. Users will be educated on how to use the ROWS utility on the interactive report menu bar so that they can display all available rows on one page and use the links to navigate from top to bottom of page.
    Mufudzi
    Edited by: Mufudzi on Oct 2, 2009 12:20 PM

  • Interactive report - Function returning SQL query

    i notice that it is not possible to create an interactive report based on a function call. can anyone shed any light on why this is?
    also, is there a work around possible? i really dont want to store my SQL query inside a page in the application

    Craig,
    I tried the collection workaround as well but noticed that it gets incredible slow when data sets grow bigger. Depending on what you need maybe my solution is of help for you:
    I used multiple subpages with interactive reports, an iframe and a javascript function setting the iframe-src on the main page, see my last post on
    interactive report custom GO-Button (-process)
    Paul

  • Multiple interactive reports/tab. forms: future or everlasting expectation?

    At the end of September, the statement of direction for APEX is updated for 4.2.
    I notice that there's not a word anymore about the possibility to use multiple interactive reports and tabular forms on one page (declarative, without the tricks described in so many blogs and forums).
    Does this mean that it will never be possible or just not yet in 4.2?
    Thanks in advance for any enlightening comment about this :-)
    Regards,
    Bart

    Bart, Joe,
    Thanks for bringing this enhancement request up again. Allowing for multiple tabular forms or multiple interactive reports on one page is still a feature that we’re considering for a future release of Oracle Application Express. But we honestly don’t know yet whether this is going to make it into APEX 4.2 or a later release. And yes, there’s certainly a chance that this may proof to be too disruptive to the current implementation, and thus require a different approach. I realize this isn’t the answer you were looking for, but all we can say that we’re still actively looking into making this possible as a standard feature.
    Regards,
    Marc

  • Is possible to save the user that uses the download action in an interactive report.

    Hi,
    In my application I want to save who is downloading the interactive reports information in any format, is it possible?
    Regards

    Hi Eva,
    As far as I know there is not an out of the box option that shows you the user that is downloading the interactive report. I guess you would have to write your own logic for that.
    You can create your own logging table and a dynamic action with
    1) a pl/sql procedure to insert the logging into the table, and
    2) submits the page with the appropriate download format, eg. f?p=&APP_ID.:&APP_PAGE_ID.:&SESSION_ID.:CSV::::
    As trigger of the dynamic action you need to use either of the download buttons, so I'd suggest the jQuery selector "#apexir_dl*"
    Kind regards,
    Vincent

  • Interactive Report - is it possible to stop a column being hidden?

    I have an interactive report region where i have a column that has a link that performs an action, in this case it links to a screen where the user can then add a row. I want to make this column mandatory and not let the user hide it. I can remove other functionality, but cant seem to control the hide/show functionality.
    anybody got any ideas?
    craig
    [oracleapplicationexpress.com|http://www.oracleapplicationexpress.com]

    Dear Hemanth,
    To your question:
    "Is it possible to stop a campaign from being cancelled if it has purchase orders attached to it, using standard functionality".
    This might be possible with a BADI implementation. In enhancement spot CRM_MKTPL there exist a BAdI CRM_MTKPL_OL_OBJ where the interface method CHECK_BEFORE_DELETE is offered.
    Regards,
    Anik

Maybe you are looking for