Highlight Search Words in Interactive Report

I have been searching and searching for days for a solution to highlight the search words in the IR. I was thinking to grab the search field value and do a global replace in the report region, but it looks like the search report is generated by javascripts. I really appreciate if anyone can help me out..thanks
Edited by: 889129 on Oct 3, 2011 10:19 AM

Is this the kind of thing?
http://apex.oracle.com/pls/apex/f?p=579:45
Basically, implement this JQuery plugin
http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
Then create a hidden/unprotected item 'P45_SEARCH'
Next create 2 x dynamic actions:
1. Before Region Refresh run JS
$("#P45_SEARCH").val($("#apexir_SEARCH").val());2. After Region Refresh run JS
var lv_search = $('#P45_SEARCH').val();
if (lv_search) {
$('td').highlight(lv_search);
}I've not had time to polish it, but it might give you some ideas.
I hope it helps
Shunt

Similar Messages

  • How to remember what I search for in Interactive Report's search field

    Hi.
    I made Cro-Eng dictionary using Interactive Report by joining two table columns of Croatian and English word. Now I want to remember every word that I write in the search field of Interactive Report by filling the table SEARCHEDWORDS which has two columns WORD and DATE, so that I can see all the searches that were made and the date they were made. Is it possible? Do I need triggers for that, or do I do it through processes in edit page of Interactive report? something like INSERT INTO SEARCHEDWORDS (WORD, DATE)
    VALUES (?SOMETHING?, SYSDATE);

    Hi Tihomir,
    The last step is Javascript so you'll need to create an HTML region and wrap the code in <script> tags. The Javascript basically overwrites the default actions to refresh the IR report. Instead it says to call a custom function which first logs the search request then makes a request to refresh the IR region.
    jQuery is used to help manipulate these links. jQuery is a javascript library. You can read more about it at jquery.com. To see more examples, Insum has an excellent jQuery for APEX page: http://apex.oracle.com/pls/otn/f?p=987654321:home:0
    If you have multiple IR pages then you can include the code on Page 0 or on each of those pages. Since you're trying to log information for several different IR you may want to add some extra columns to your log table to include which IR the searches belong to. You'll also need to update your application process and (depending on your requirements) some of the javascript code.
    Martin
    [http://apex-smb.blogspot.com/]

  • How to apply an accent-insensitive search to an interactive report?

    Hello all!
    I'm trying to put an accent-insensitive search on an interactive report here. For example, if I'm on the page that has the interactive report and if I click the column header of the interactive report, I get to see a search bar that dynamically shows the results that match your input. Now, when I enter "jager", I want to see *"Jägermeister"* as a search result. The search must be accent-insensitive, so that I don't have to enter the ä every time.
    My code is as follows:
    SELECT name
    FROM food_1
    WHERE name LIKE 'Jagerme%'
    AND NLSSORT(name) IS NOT NULL
    ORDER BY NLSSORT(name, 'NLS_SORT=GENERIC_M_AI');As you can see, I first tried getting a result through the SQL Command. It should return the row that has "Jägermeister" as name. However, it doesn't. It tells me "No data found". So, how do I alter my NLSSORT to search accent-insensitive?
    Some extra information, I edited the interactive report source to the following:
    SELECT DISTINCT a.name, a.foodid
    FROM food_1 a INNER JOIN foodunit_1 c
    ON a.foodid = c.foodid
    WHERE a.foodlanguageid = :P17_SET_LANGUAGE
    AND NLSSORT(a.name) IS NOT NULL
    ORDER BY NLSSORT(a.name, 'NLS_SORT=GENERIC_M_AI');I also tried doing ALTER SESSION before the SQL code, but it still gives me the same result: No data found.
    I'm using APEX version 4.1.1.00.23.
    Help and suggestions are more than welcome. ;)
    Thanks in advance,
    Magali

    I found it out!
    It's really ridiculous, actually.
    Remember this code?
    execute immediate ('ALTER session SET NLS_COMP=LINGUISTIC');
    execute immediate ('ALTER session SET NLS_SORT=BINARY_AI');Well, this code is perfectly fine. Only, it doesn't execute. This is because it was misplaced...This process is not executed when you place it in the current authentication scheme, under the "Post-Authenticatoin Process" part.
    You might wonder why this is, but I have the explanation to that.
    You see, when you use an interactive report, the page processing isn't executed when you use the search function of that interactive report... Because it's an interactive report, I guess.
    BUT.
    An ALTER SESSION from the security attributes, that will execute.
    So, the solution to my problem was, in this case:
    Go to "Application" --> "Shared Objects" --> "Security Attributes" --> "Database Session" --> "Initialization PL/SQL code". In there, you need to put:
    BEGIN
    EXECUTE IMMEDIATE 'ALTER session SET NLS_COMP=LINGUISTIC';
    EXECUTE IMMEDIATE 'ALTER session SET NLS_SORT=BINARY_AI';
    END;By doing this, there's no longer any need to edit the source code of the report!
    So, that's the solution. I can finally enter text without special characters in it, and get the corresponding data, with special characters... Ahh. :)
    I hope this is helpful to others as well now. ;)

  • Search/Filter through Interactive Report!

    Hi All,
    First of all WISH a very Happy New Year-2010!!
    In my previous post for Search/Filter through Interactive Report!
    I am facing problem with UI as mentioned below can any one help me out on this, as this an urgent for me...
    At last i was able to was able to retrieve the data from Iframe using different logic!!
    But i want to modify some of the modifications in UI Design..
    As i have informed u that End user always selects the Page-85 which is visible to them..
    In that page(85) i have totally created three regions.
    1. Attribute Report(Intearctive report)
    2. Manage Attribute(HTML where i have give iframe syntax as {iframe ID="Attribute Report" src="" style="width:520;" FRAMEBORDER=0></iframe>
    3. Create/Edit Region
    FYI: There is a create button in Attrinbute Report and when i click on that Button then only i wil display the Create/Edit Region
    Now the problem is end user are using pixels as 1024*756 size, when i have tried to increase the size of width in iframe, the create/edit region is crossing and
    need to scroll down to check the data.
    Let us assume if i had reduced the size of width as default 520 then create/edit region is placed with in pixcels.
    As u know there is a button called as "GetResults" in page-85 when i clik on that button we will call the iframe which is a hidden page where end user
    can not view.
    The main problem is that in that page i mean page-45, it has desgined in such a way that it is similar to page-85 which is having with all 3 regions!!
    When it will display the report from iframe for that the scrolloing is displayed, and when i had click on create button in that iframe the credit/edit region is
    displayed but for that there to scroll down which is not happy by endsuer.
    In order to overcome this i had tried to increase the width in iframe which is working for one not for the other or viceversa.
    Suggestion: Can u suggest me how to fix the pixcels so that it will not excceds the pixecls size?
    What i had thought is in page-85 i have created totally 4 regions instead of 3 regions as shown below:
    1. Attribute Region
    2. manage Attribure(With Iframe)
    3. manage Attribute(With out iframe but used one hidden varibable ans set that hidden in condtional region)
    4. Create/Edit Region.
    And i am setting that hidden variable in Create button, so that i can call the second manage attribure with iframe.. When i have tried to use that it is throwing script error as "style is null or nor an object", i belive scince we are hidinng that region it migh not able to identify that style!!!
    Can u suggest me the way i have done i had implemenetd is sounds goods for u? Or else can u help me out how to fix that UI design issue...
    Thanks in advance,
    Anoo..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Hi Andy,
    As per your suggestion i have created two pages!. One is 85 page and 45 page, but foe enduser can see only the 85 page.
    In 85 page i have created a interactive report as shown below:
    SELECT distinct attr_code "EDIT", attr_code, attr_description, attr_atcl_code,
    attr_abbreviation,
    attr_include_short_desc "Include short desc",
    attr_include_long_desc "Include long desc",
    attr_attr_type "AttrType", attr_code "DELETE"
    FROM t_append WHERE EXISTS (SELECT 1
    FROM APEX_APPLICATION_PAGE_IR_COND
    WHERE APPLICATION_ID = :APP_ID
    AND PAGE_ID = :APP_PAGE_ID
    AND CONDITION_ENABLED = 'Yes'
    AND APPLICATION_USER = :APP_USER) ORDER BY attr_description;
    In the same page itself i have created a One more region, where i have one select list and submit button, when there select fro the list and click on submit button then popup should fired, i mean what u have mentioned. For that i have created a new page called 45 where i have two regions one is HTML region and second is interactive report.
    I html region i have given like this in source
    <iframe src="f?p=&APP_ID.:85:&SESSION." style="width:500; height:1000;" FRAMEBORDER=0></iframe>
    but i am not able to see the template at all?
    Pls correct i way i have done is correct or not.
    Also i was not able to see the Region as - Popup one ( where i can see the popup option?)
    Thanks,
    Anoo..

  • Highlight current row on Interactive Report

    What is the best way to highlight (or identify) the current row in an Interactive Report?
    I’ve created an interactive report, based on a custom SQL query, with a link (on the primary key (id)) to give the user the possibility to select a certain record (that will show some additional regions with detail information). How can I identify (highlight, indicator) the selected row in an Interactive Report?
    Many thanks for your help,
    John

    I wanted the same without using jQuery. Roel's example set me on the right track. To ensure keeping my current row highligthing after using the pagination links I've managed to dynamicly modify the pagination link in the IR using javascript, but I have a little (I hope) problem left.
    I've managed to change the pagination link when rendering the page from
    <a h ref="javascript:gReport.navigate.paginate('pgR_min_row=16max_rows=15rows_fetched=15')"></a>to
    <a h ref=javascript:gReport.navigate.paginate('pgR_min_row=16max_rows=15rows_fetched=15');highLight(this)></a>Unfortunatly my added code does not notice the changes made by the gReport.navigate.paginate code. It does only work when I add an alert (); in my highLight code. This alert will force showing the changes made in the DOM-model by gReport, allowing the highLight function to re-exame the DOM-model and change the pagination link.
    Anyone an idea how to overcome this problem ?
    Kind regards,
    Ralph

  • How to highlight searched words in pdf file opens from web??

    Hello fellows
    I need to create a web page that holds couple controls include "search" button .When client clicks on the button the programm will search pdf file, open it in client reader with highlight on searched words ..
    Is that any posibility to do it using javascript on a client or c# ,vb.net on the server ??
    I'm very novice in PDF developing so any ideas or conclusions would be very usefull!

    Thank you for answer
    But maybe you have any idea how I can do it??
    This is very important feature for our project.
    Some additional information : our project will hosted in SharePoint 2007
    When I use adobe Ifilter for moss and set in querystring #search="searchword"  I get highlights, but only in a browser.
    But if a reader was configured to open client application this feature wasn't work.
    Any suggestion ???

  • Set default search column in Interactive Report

    Hi All:
    In APEX 4.0, for "Interactive Report" search function:
    If user doesn't select a column name to search for (this is done by click Magnifier glass icon), the IR will search "All Columns" that contains a string you have typed in the search bar.
    Is there a way to configure IR so that, by default, it will not search "All Columns", instead, it should search a particular column that I will specify when define this IR report.
    Why I am asking this? Here is my case:
    I have created a IR report to search employee information. By default, when user enters a string in the search bar, user want to search "Emploee Full Name" column in my IR report. User wants this default search behavior and really doesn't want to "click Magnifier glass icon and select "Employee Full Name" column; then type the search string).
    Basically, in my case, the IR report should default to search "Employee Full Name" if user doesn't select any search column.
    Any idea how to achieve this?
    Thanks!
    Kevin

    In the above DA, Changing the 'Event Scope' to 'Dynamic' should trigger it after PPR. I tried it but it's not working for me.
    Try the below it's working for me as expected,
    Create DA like below,
    Event: After Refresh
    Selection Type: Region
    Region: Select your IR region
    In True Action,
    Action: Execute Javascript Code
    Code:
    $s('apexir_SEARCH_COLUMN_DROP','COLUMN_LABEL');                           
    $s('apexir_CURRENT_SEARCH_COLUMN', 'COLUMN_ALIAS');
    In Affected Element,
    Selection Type: Region
    Region: Select your IR region
    Event Scope: bind (Default)
    Make sure Fire On Page Load under 'Execution Option' is checked. (i.e. Fire On Page Load: Yes)
    I am using APEX 4.0.2.00.07. It's working for me also in apex.oracle.come it's working in my example application.
    Thanks
    Lakshmi

  • Cancel the search in an Interactive Report

    Hi ,
    My Interactive Report will run for a minute or for a long time like 5 to to 10 minutes depending upon given parameters to the report.
    Now I would like to cancel the report search when I made a mistake like searching on a value which willtake more time.
    Please suggest how to achieve the same.
    Regards,
    Meda

    You could try to reset the report using a page button for example. See this:
    http://dpeake.blogspot.de/2008/03/advanced-interactive-reports.html
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.apress.com/9781430235125
    http://apex.oracle.com/pls/apex/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • Highlighted Search Result of a Report

    Dear all,
    I created a search field item in a report and named it P_SEARCH. It worked fine, but when I tried to set the returned results highlighted by setting its Highlight Words Column Formatting Region in Report Attributes Edit to &P_SEARCH, it wasn't working as expected.
    Could anybody advise me how to troubleshoot this?
    Best regards,
    Val

    Hi,
    Did you forgot dot after item name?
    Try
    &P_SEARCH.Regards,
    Jari

  • FireFox plugin (Adobe Acrobat 10.1.9.22) isn't highlighting searched words, anymore

    Hello, everyone.
    I worked on a project, last year, that created Solr collections of PDF files, and allowed users to search the PDFs for whatever keywords the user enters.  One of the nice things about the project was that the FireFox plugin could read the keyword(s) entered by users and highlight them in the PDF being displayed within the browser.
    When I first started on that project, I think we were using FireFox 17.  NetAdmins recently upgraded everyone's browsers to FF24.4 (plugin Acrobat 10.1.9.22) and this highlighting feature seems to have been removed.  OR, it could be that code needs to be updated in order for it to work as it once did.
    What do I need to do to get the keyword highlighting in PDFs functional, again?  Or has the plugin been modified so that it won't work, anymore?  (This is a feature that our customer really likes.)
    V/r,
    ^_^

    It's not enough that the Adobe plugin is installed. You have to make sure it is actually being used... See here:
    http://helpx.adobe.com/acrobat/kb/pdf-browser-plugin-configuration.html

  • Enter in search field in Interactive report does not work

    APEX 3.2.1
    When I type a string in apexir_SEARCH field and clichk on OK button, the report behaves in a correct way - it adds a filter line and does filtering.
    When I type a string in apexir_SEARCH field and then <Enter>, nothing happens.
    The same behavior in IE9 and Chrome.
    Apparently, it's gReport.search('SEARCH') function actioned on apexir_SEARCH's keyup event that is fired, but I don't manage to get further.
    I have deleted all non-odp processes and created a test IR page, but there the behavior is still the same.
    Any idea what could cause this?
    Igor

    inspect the input element and see if it has something like this
    if($f_Enter(event)){gReport.search('SEARCH'); return false;}if not add this using javascript

  • "Invalid number" error using Interactive Report search  on collection

    hi -- I have several interactive reports based on collections. In the IR reqion query definition,
    I cast the collection values as needed (number, date, etc). Everything's been working great.
    In both development and production, I can use the search feature of interactive reports
    and it finds rows containing the text I type in (as well as everything else working fine...)
    I just imported a new version of an application into our production database. Now, when I use the
    interactive report search, I always get "invalid number". This even happens on interactive reports
    that still work in the previous version of the production application... and these IRS
    have not been modified at all.
    If I create a filter and search for "elevation" in a string column, the filter works. If I create a filter
    searching for "elevation" in a number column, I get "invalid number". (In the development
    environment, I can do the latter -- it just doesn't find any rows.)
    Clearly it's choking on the types of the columns in the IR... but why now and not before, and why
    in the production database but not the development DB? Both are running 4.0.1.00.03.
    This is a pretty major loss of functionality... and it comes at a really bad time... Help?!
    Thanks,
    Carol

    hi Andy, Tony -- Completely understand about your email address. I've actually wondered at the fact that any
    of you gurus are willing to give them out.
    It's not tons of stuff, so here it is.
    1) The application process that creates the collection. This process that runs whenever an IR
    page is being rendered. The various DB names are application items. This application can affect data
    on multiple databases. You'll see see this in the process that builds the query.
    IF (apex_collection.collection_exists (      
        p_collection_name=>'IR_COLLECTION')) then
        apex_collection.delete_collection(p_collection_name=>'IR_COLLECTION');
    END IF;
    apex_collection.create_collection_from_query_b(p_collection_name=>'IR_COLLECTION', p_query=>meta_data_pkg.build_ir_collection_query(:TABLE_NAME, :MASTER_DB_NAME, :CZAR_DB_NAME, :DB_NAME));2) The database function that constructs the query. Called in the above create_collection statement.
    FUNCTION build_ir_collection_query (table_name varchar2, master_db_name varchar2, czar_db_name varchar2, ref_db_name varchar2)
    return varchar2
    IS
      query VARCHAR2(3000);
    BEGIN
      IF /* check for other table names here */ THEN
        -- build queries for other tables
       -- *** HDB_EXT_DATA_CODE
      ELSIF (upper(table_name) in ('HDB_EXT_DATA_CODE', 'HDB_EXT_DATA_CODE_SYN')) THEN
        query := 'SELECT /*+DRIVING_SITE(dcs)*/ dc.ext_data_code_sys_id, dcs.ext_data_code_sys_name, dcs.agen_id, a.agen_name, dc.primary_data_code,';
        query := query||' dc.secondary_data_code, dc.hdb_datatype_id, d.datatype_name, d.unit_id, u.unit_name, d.physical_quantity_name, to_char(dc.date_time_loaded,''DD-MON-YYYY HH24:MI:SS'')';
        query := query||' FROM hdb_ext_data_code_syn@'||master_db_name || ' dc, hdb_ext_data_code_sys_syn@'||master_db_name ||
                 ' dcs, hdb_agen_syn@'||master_db_name||' a, hdb_datatype_syn@'||master_db_name||' d, hdb_unit@'||czar_db_name||' u';
        query := query||' WHERE dc.ext_data_code_sys_id = dcs.ext_data_code_sys_id AND dcs.agen_id = a.agen_id(+) AND dc.hdb_datatype_id = d.datatype_id AND d.unit_id = u.unit_id';
       /* continue w/ other tables */
    END;3) The query that it builds for the table in question:
    SELECT /*+DRIVING_SITE(dcs)*/ dc.ext_data_code_sys_id, dcs.ext_data_code_sys_name, dcs.agen_id, a.agen_name,
    dc.primary_data_code, dc.secondary_data_code, dc.hdb_datatype_id, d.datatype_name, d.unit_id, u.unit_name,
    d.physical_quantity_name, to_char(dc.date_time_loaded,'DD-MON-YYYY HH24:MI:SS')
    FROM hdb_ext_data_code_syn@UCHDB2 dc,  hdb_ext_data_code_sys_syn@UCHDB2 dcs, hdb_agen_syn@UCHDB2 a,
    hdb_datatype_syn@UCHDB2 d, hdb_unit@UCHDB2 u
    WHERE dc.ext_data_code_sys_id = dcs.ext_data_code_sys_id AND dcs.agen_id = a.agen_id(+)
    AND dc.hdb_datatype_id = d.datatype_id AND d.unit_id = u.unit_id           4) The explain plan results on the development database
    PLAN_TABLE_OUTPUT                                                                                  
    Plan hash value: 583729845                                                                         
    | Id  | Operation                       | Name                  | Rows  | Bytes | Cost (%CPU)| Time
        | Inst   |                                                                                     
    |   0 | SELECT STATEMENT REMOTE         |                       |    97 | 16490 |    19  (16)| 00:00
    :01 |        |                                                                                     
    |*  1 |  HASH JOIN                      |                       |    97 | 16490 |    19  (16)| 00:00
    :01 |        |                                                                                     
    |   2 |   TABLE ACCESS FULL             | HDB_UNIT              |   177 |  3540 |     3   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    |*  3 |   HASH JOIN RIGHT OUTER         |                       |    95 | 14250 |    15  (14)| 00:00
    :01 |        |                                                                                     
    |   4 |    TABLE ACCESS FULL            | HDB_AGEN              |    54 |  1944 |     3   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    |*  5 |    HASH JOIN                    |                       |    95 | 10830 |    12  (17)| 00:00
    :01 |        |                                                                                     
    |   6 |     MERGE JOIN                  |                       |   112 |  5936 |     6  (17)| 00:00
    :01 |        |                                                                                     
    |   7 |      TABLE ACCESS BY INDEX ROWID| HDB_EXT_DATA_CODE_SYS |    15 |   405 |     2   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    |   8 |       INDEX FULL SCAN           | HDB_EXT_DATA_CODE_SYS |    15 |       |     1   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    |*  9 |      SORT JOIN                  |                       |   112 |  2912 |     4  (25)| 00:00
    :01 |        |                                                                                     
    |  10 |       TABLE ACCESS FULL         | HDB_EXT_DATA_CODE     |   112 |  2912 |     3   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    |  11 |     TABLE ACCESS FULL           | HDB_DATATYPE          |   711 | 43371 |     5   (0)| 00:00
    :01 | UCHDB2 |                                                                                     
    Predicate Information (identified by operation id):                                                
       1 - access("A2"."UNIT_ID"="A1"."UNIT_ID")                                                       
       3 - access("A4"."AGEN_ID"="A3"."AGEN_ID"(+))                                                    
       5 - access("A5"."HDB_DATATYPE_ID"="A2"."DATATYPE_ID")                                           
       9 - access("A5"."EXT_DATA_CODE_SYS_ID"="A4"."EXT_DATA_CODE_SYS_ID")                             
           filter("A5"."EXT_DATA_CODE_SYS_ID"="A4"."EXT_DATA_CODE_SYS_ID")                             
    Note                                                                                               
       - fully remote statement                                                                         5) The explain plan results on the production database
    PLAN_TABLE_OUTPUT                                                                                                                                                                  
    Plan hash value: 583729845                                                                                                                                                         
    | Id  | Operation                       | Name                  | Rows  | Bytes | Cost (%CPU)| Time     |                                                                          
    |   0 | SELECT STATEMENT                |                       |    97 | 16490 |    19  (16)| 00:00:01 |                                                                          
    |*  1 |  HASH JOIN                      |                       |    97 | 16490 |    19  (16)| 00:00:01 |                                                                          
    |   2 |   TABLE ACCESS FULL             | HDB_UNIT              |   177 |  3540 |     3   (0)| 00:00:01 |                                                                          
    |*  3 |   HASH JOIN RIGHT OUTER         |                       |    95 | 14250 |    15  (14)| 00:00:01 |                                                                          
    |   4 |    TABLE ACCESS FULL            | HDB_AGEN              |    54 |  1944 |     3   (0)| 00:00:01 |                                                                          
    |*  5 |    HASH JOIN                    |                       |    95 | 10830 |    12  (17)| 00:00:01 |                                                                          
    |   6 |     MERGE JOIN                  |                       |   112 |  5936 |     6  (17)| 00:00:01 |                                                                          
    |   7 |      TABLE ACCESS BY INDEX ROWID| HDB_EXT_DATA_CODE_SYS |    15 |   405 |     2   (0)| 00:00:01 |                                                                          
    |   8 |       INDEX FULL SCAN           | HDB_EXT_DATA_CODE_SYS |    15 |       |     1   (0)| 00:00:01 |                                                                          
    |*  9 |      SORT JOIN                  |                       |   112 |  2912 |     4  (25)| 00:00:01 |                                                                          
    |  10 |       TABLE ACCESS FULL         | HDB_EXT_DATA_CODE     |   112 |  2912 |     3   (0)| 00:00:01 |                                                                          
    |  11 |     TABLE ACCESS FULL           | HDB_DATATYPE          |   711 | 43371 |     5   (0)| 00:00:01 |                                                                          
    Predicate Information (identified by operation id):                                                                                                                                
       1 - access("D"."UNIT_ID"="U"."UNIT_ID")                                                                                                                                         
       3 - access("DCS"."AGEN_ID"="A"."AGEN_ID"(+))                                                                                                                                    
       5 - access("DC"."HDB_DATATYPE_ID"="D"."DATATYPE_ID")                                                                                                                            
       9 - access("DC"."EXT_DATA_CODE_SYS_ID"="DCS"."EXT_DATA_CODE_SYS_ID")                                                                                                            
           filter("DC"."EXT_DATA_CODE_SYS_ID"="DCS"."EXT_DATA_CODE_SYS_ID")                                                                                                             6) This is the source query for the interactive report in question. The application process that creates the
    collection runs before this region is rendered.
    Select /*+ NO_QUERY_TRANSFORMATION */
    to_number(C001) Ext_Data_Code_Sys_Id,
    C002 Ext_Data_Code_Sys_Name,
    to_number(C003) Agen_Id,
    C004 Agen_Name,
    C005 Primary_Data_Code,
    C006 Secondary_Data_Code,
    to_number(C007) Hdb_Datatype_Id,
    C008 Datatype_Name,
    to_number(C009) Unit_Id,
    C010 Unit_Name,
    C011 Physical_Quantity_Name,
    C012 Date_Time_Loaded
    from apex_collections
    where collection_name = 'IR_COLLECTION'
    order by 1,5,7Well, maybe it is alot... !
    Happy New Year!
    Carol

  • ABAP Interactive report

    Hi,
    What is Interactive report?
    what are the specific statements you write when do u write interactive Report??
    Thanks in advance.

    Hi,
    t helps you to create easy-to-read lists. You can display an overview list first that contains general information and provide the user with the possibility of choosing detailed information that you display on further lists.
    What are the uses of interactive reporting?
    The user can actively control data retrieval and display during the session. Instead of an extensive and detailed list, you create a basic list with condensed information from which the user can switch to detailed displays by positioning the cursor and entering commands. The detailed information appears in secondary lists.
    What are the event key words in interactive reporting?
    Event Keyword Event
    AT LINE-SELECTION Moment at which the user selects a line by double clicking on it or by positioning the cursor on it and pressing F2.
    AT USER-COMMAND Moment at which the user presses a function key.
    TOP-OF-PAGE DURING Moment during list processing of a
    LINE-SELECTION secondary list at which a new page starts.
    What is secondary list?
    It allows you to enhance the information presented in the basic list. The user can, for example, select a line of the basic list for which he wants to see more detailed information. You display these details on a secondary list. Secondary lists may either overlay the basic list completely or you can display them in an extra window on the screen. The secondary lists can themselves be interactive again.
    How to select valid lines for secondary list?
    To prevent the user from selecting invalid lines, ABAP/4 offers several possibilities. At the end of the processing block END-OF-SELECTION, delete the contents of one or more fields you previously stored for valid lines using the HIDE statement. At the event AT LINE-SELECTION, check whether the work area is initial or whether the HIDE statement stored field contents there. After processing the secondary list, clear the work area again. This prevents the user from trying to create further secondary lists from the secondary list displayed.
    How to create user interfaces for lists?
    The R/3 system automatically, generates a graphical user interface (GUI) for your lists that offers the basic functions for list processing, such as saving or printing the list. If you want to include additional functionality, such as pushbuttons, you must define your own interface status. To create a new status, the Development Workbench offers the Menu Painter. With the Menu Painter, you can create menus and application toolbars. And you can assign Function Keys to certain functions. At the beginning of the statement block of AT END-OF-SELECTION, active the status of the basic list using the statement: SET PF-STATUS ‘STATUS’.
    What is interactive reporting?
    A classical non-interactive report consists of one program that creates a single list. Instead of one extensive and detailed list, with interactive reporting you create basic list from which the user can call detailed information by positioning the cursor and entering commands. Interactive reporting thus reduces information retrieval to the data actually required.
    Can we call reports and transactions from interactive reporting lists?
    Yes. It also allows you to call transactions or other reports from lists. These programs then use values displayed in the list as input values. The user can, for example, call a transaction from within a list of change the database table whose data is displayed in the list.
    What are system fields for secondary lists?
    SY-LSIND Index of the list created during the current event (basic list = 0)
    SY-LISTI Index of the list level from which the event was triggered.
    SY-LILLI Absolute number of the line from which the event was triggered.
    SY-LISEL Contents of the line from which the event was triggered.
    SY-CUROW Position of the line in the window from which the event was triggered (counting starts with 1)
    SY-CUCOL Position of the column in the window from which the event was triggered (counting starts with 2).
    SY-CPAGE Page number of the first displayed page of the list from which the event was triggered.
    SY-STARO Number of the first line of the first page displayed of the list from which the event was triggered (counting starts with 1). Possibly, a page header occupies this line.
    SY-STACO Number of the first column displayed in the list from which the event was triggered (counting starts with 1).
    SY-UCOMM Function code that triggered the event.
    SY-PFKEY Status of the displayed list.
    How to maintain lists?
    To return from a high list level to the next-lower level (SY-LSIND), the user chooses Back on a secondary list. The system then releases the currently displayed list and activates the list created one step earlier. The system deletes the contents of the released list. To explicitly specify the list level, into which you want to place output, set the SY-lsind field. The system accepts only index values, which correspond to existing list levels. It then deletes all existing list levels whose index is greater or equal to the index specify. For example, if you set SY-LSIND to 0, the system deletes all secondary lists and overwrites the basic list with the current secondary list.
    What are the page headers for secondary lists?
    On secondary lists, the system does not display a standard page header and it does not trigger the event. TOP-OF-PAGE. To create page headers for secondary list, you must enhance TOP-OF-PAGE: Syntax TOP-OF-PAGE DURING LINE-SELECTION. The system triggers this event for each secondary list. If you want to create different page headers for different list levels, you must program the processing block of this event accordingly, for example by using system fields such as SY-LSIND or SY-PFKEY in control statements (IF, CASE).
    How to use messages in lists?
    ABAP/4 allows you to react to incorrect or doubtful user input by displaying messages that influence the program flow depending on how serious the error was. Handling messages is mainly a topic of dialog programming. You store and maintain messages in Table T100. Messages are sorted by language, by a two-character ID, and by a three-digit number. You can assign different message types to each message you output. The influence of a message on the program flow depends on the message type. In our program, use the MESSAGE statement to output messages statically or dynamically and to determine the message type.
    Syntax:REPORT <rep> MESSAGE-ID <id>.
    What are the types of messages?
    A message can have five different types. These message types have the following effects during list processing:
    .A (=Abend):
    .E (=Error) or W (=Warning):
    .I (=Information):
    .S (=Success):
    What are the user interfaces of interactive lists?
    If you want the user to communicate with the system during list display, the list must be interactive. You can define specific interactive possibilities in the status of the list’s user interface (GUI). To define the statuses of interfaces in the R/3 system, use the Menu Painter tool. In the Menu Painter, assign function codes to certain interactive functions. After an user action occurs on the completed interface, the ABAP/4 processor checks the function code and, if valid, triggers the corresponding event.
    What are the drill-down features provided by ABAP/4 in interactive lists?
    ABAP/4 provides some interactive events on lists such as AT LINE-SELECTION (double click) or AT USER-COMMAND (pressing a button). You can use these events to move through layers of information about individual items in a list.
    What is meant by stacked list?
    A stacked list is nothing but secondary list and is displayed on a full-size screen unless you have specified its coordinates using the window command.
    Is the basic list deleted when the new list is created?
    No. It is not deleted and you can return back to it using one of the standard navigation functions like clicking on the back button or the cancel button.
    What is meant by hotspots?
    A Hotspot is a list area where the mouse pointer appears as an upright hand symbol. When a user points to that area (and the hand cursor is active), a single click does the same thing as a double-click. Hotspots are supported from R/3 release 3.0c.
    What is the length of function code at user-command?
    Each menu function, push button, or function key has an associated function code of length FOUR (for example, FREE), which is available in the system field SYUCOMM after the user action.
    Can we create a gui status in a program from the object browser?
    Yes. You can create a GUI STATUS in a program using SET PF-STATUS.
    In which system field does the name of current gui status is there?
    The name of the current GUI STATUS is available in the system field SY-PFKEY.
    Can we display a list in a pop-up screen other than full-size stacked list?
    Yes, we can display a list in a pop-up screen using the command WINDOW with the additions starting at X1 Y1 and ending at X2 Y2 to set the upper-left and the lower-right corners where x1 y1 and x2 y2 are the coordinates.
    What is meant by hide area?
    The hide command temporarily stores the contents of the field at the current line in a system-controlled memory called the HIDE AREA. At an interactive event, the contents of the field are restored from the HIDE AREA.
    When the get cursor command used in interactive lists?
    If the hidden information is not sufficient to uniquely identify the selected line, the command GET CURSOR is used. The GET CURSOR command returns the name of the field at the cursor position in a field specified after the addition field, and the value of the selected field in a field specified after value.
    How can you display frames (horizontal and vertical lines) in lists?
    You can display tabular lists with horizontal and vertical lines (FRAMES) using the ULINE command and the system field SY-VLINE. The corners arising at the intersection of horizontal and vertical lines are automatically drawn by the system.
    What are the events used for page headers and footers?
    The events TOP-OF-PAGE and END-OF-PAGE are used for pager headers and footers.
    How can you access the function code from menu painter?
    From within the program, you can use the SY-UCOMM system field to access the function code. You can define individual interfaces for your report and assign them in the report to any list level. If you do not specify self-defined interfaces in the report but use at least one of the three interactive event keywords. AT LINE-SELECTION, AT PF<nn>, OR AT USER-COMMAND in the program, the system automatically uses appropriate predefined standard interfaces. These standard interfaces provide the same functions as the standard list described under the standard list.
    How the at-user command serves mainly in lists?
    The AT USER-COMMAND event serves mainly to handle own function codes. In this case, you should create an individual interface with the Menu Painter and define such function codes.
    How to pass data from list to report?
    ABAP/4 provides three ways of passing data:
    ---Passing data automatically using system fields
    ---Using statements in the program to fetch data
    ---Passing list attributes
    How can you manipulate the presentation and attributes of interactive lists?
    ---Scrolling through Interactive Lists.
    ---Setting the Cursor from within the Program.
    ---Modifying List Lines.
    How to call other programs?
    Report Transaction
    Call and return SUBMIT AND RETURN CALL TRANSACTION
    Call without return SUBMIT LEAVE TO TRANSACTION
    You can use these statements in any ABAP/4 program.
    What will exactly the hide statement do?
    For displaying the details on secondary lists requires that you have previously stored the contents of the selected line from within the program. To do this, ABAP/4 provides the HIDE statement. This statement stores the current field contents for the current list line. When calling a secondary list from a list line for which the HIDE fields are stored, the system fills the stored values back into the variables in the program. In the program code, insert the HIDE statement directly after the WRITE statement for the current line. Interactive lists provide the user with the so-called ‘INTERACTIVE REPORTING’ facility. For background processing the only possible method of picking the relevant data is through ‘NON INTERACTIVE REPORT’ . After starting a background job, there is no way of influencing the program. But whereas for dialog sessions there are no such restrictions.
    How many lists can a program can produce?
    Each program can produce up to 21 lists: one basic list and 20 secondary lists. If the user creates a list on the next level (that is, SY-LSIND increases), the system stores the previous list and displays the new one. Only one list is active, and that is always the most recently created list.
    FALSE.
    *& Report ZLAXMI_REPORT6 *
    REPORT ZLAXMI_REPORT6 .
    tables: mara,
    makt,
    marc,
    mard.
    data: begin of it_mara occurs 0,
    matnr like mara-matnr,
    end of it_mara.
    data: begin of it_makt occurs 0,
    maktx like makt-maktx,
    matnr like makt-matnr,
    end of it_makt.
    data: begin of it_marc occurs 0,
    werks like marc-werks,
    matnr like marc-matnr,
    end of it_marc.
    data: begin of it_mard occurs 0,
    lgort like mard-lgort,
    labst like mard-labst,
    speme like mard-speme,
    matnr like mard-matnr,
    end of it_mard.
    data: begin of it_final occurs 0,
    matnr like mara-matnr,
    maktx like makt-maktx,
    werks like marc-werks,
    lgort like mard-lgort,
    labst like mard-labst,
    speme like mard-speme,
    end of it_final.
    selection-screen: begin of block b1 with frame title text-001.
    select-options: s_matnr for mara-matnr.
    selection-screen: end of block b1 .
    start-of-selection.
    perform get-data.
    perform write_data.
    end-of-selection.
    at line-selection.
    perform sec_list.
    *& Form get-data
    text
    --> p1 text
    <-- p2 text
    FORM get-data .
    select matnr
    from mara
    into table it_mara
    where matnr in s_matnr.
    if sy-subrc = 0.
    select maktx
    matnr from makt
    into table it_makt
    for all entries in it_mara
    where matnr = it_mara-matnr.
    endif.
    ENDFORM. " get-data
    *& Form write_data
    text
    --> p1 text
    <-- p2 text
    FORM write_data .
    loop at it_makt.
    write:/ it_makt-matnr, it_makt-maktx.
    endloop.
    ENDFORM. " write_data
    *& Form sec_list
    text
    --> p1 text
    <-- p2 text
    FORM sec_list .
    case sy-lsind.
    when '1'.
    perform basic_1.
    endcase.
    ENDFORM. " sec_list
    *& Form basic_1
    text
    --> p1 text
    <-- p2 text
    FORM basic_1 .
    select werks
    matnr
    from marc
    into table it_marc
    for all entries in it_makt
    where matnr = it_makt-matnr.
    if sy-subrc = 0.
    select lgort
    labst
    speme
    matnr
    from mard
    into table it_mard
    for all entries in it_makt
    where matnr = it_makt-matnr.
    endif.
    *clear it_makt.
    *clear it_mard.
    read table it_marc with key matnr = it_mara-matnr binary search.
    read table it_mard with key matnr = it_mara-matnr binary search.
    clear it_marc.
    clear it_mard.
    move:it_makt-matnr to it_final-matnr,
    it_makt-maktx to it_final-maktx.
    move: it_marc-werks to it_final-werks,
    it_mard-lgort to it_final-lgort,
    it_mard-labst to it_final-labst,
    it_mard-speme to it_final-speme.
    append it_final.
    *loop at it_final.
    write:/ it_final-matnr, it_final-maktx,
    it_final-werks,
    it_final-labst, it_final-speme.
    *endloop.
    ENDFORM. " basic_1
    regards,
    Omkar.

  • Interactive Report Russian Language Problem

    Hello,
    Entering Russian characters to search field of Interactive Report APEX transform it to another charset and I receive wrong result. For example entering КС I get РљРЎ, any ideas?
    Best Regards, Kostya Proskudin

    Answer for my question:
    Changing character set in DAD file. From CL8MSWIN1251 to AL32UTF8.
    But I still can't understand why it happen only in Interactive Report!!!

  • Highlight search string in a pl/sql report

    Hi all,
    I followed the example of QBE by Scott Spendolini. I got it working. But I am trying to add the highlight search string functionality, in the report created. The report is created from a dynamic pl/sql query. Can you give me any ideas or an example? Thank you for your time in advance,
    Rgds,
    Suma.

    Hi Suma,
    Your Search button runs a process called "RUN_REPORT". Presumably, this process picks up the values from the tabular form to construct the new SQL statement.
    Given that you don't have a normal report definition - ie one that you can use the Highlight Words option - the only other possibility is to adjust the SQL query results.
    Let's assume that you have in your RUN_REPORT process a variable called vJOB that holds the JOB value from your QBE grid. Your SQL statement could then be adjusted to something like:
    SELECT EMPNO,
    ENAME,
    '&lt;span style="color:red"&gt;' || JOB || '&lt;/span&gt;',
    etc
    FROM EMPTABLE
    WHERE JOB = vJOB;
    Obviously, without seeing your code, I can not say exactly how it should be constructed to highlight the word(s), but the above should give you an idea of what you need to do. If you're still not sure, can you please paste into this thread the RUN_REPORT code.
    Regards
    Andy

Maybe you are looking for