Conditional display column in report

Hi,
If we have a single row report of 30 columns, and I want to display only the one with any values but null and hide the null ones, Is there a way to do it?
It's the same issue discussed in this thread conditional display column in report
thanks,
Fadi.

Samara - I suspect there are a few ways to do this, but none obvious or very easy as far as I can see.
You can create dynamic SQL (as Arie and others have suggested) to only include the columns that are not null.
You can build and output the HTML directly to the page, choosing only to include the values that are not null.
You can create a set of conditions that you can apply to the report columns. A very crude example might be 30 hidden page items like 'SHOW_COL1' etc. (not great, I know), or perhaps you could set a hidden page item to a value like '01:02:03:'etc., with the number only being included if the value is not null (so that col3 being null gives you '01:02::04'etc.), so that the condition for each column is 'Text in expr 1 in contained in Item in expr 2', where expr 1 is '01' for column 1 etc.
Sorry, that is a very contrived example, but it's just to illustrate that there's generally a way of doing pretty much anything in APEX. You might create your item containing the comparison expression by requerying the data in this kind of way:
SELECT NVL2(column1, '01', '') || ':' || NVL2(column2, '02', '') || ':' etc.
FROM table
WHERE condition
However, wanting to create a single-row report with nulls hidden makes we wonder what you're actually trying to achieve and whether there's a better way? Could you use a series of page items, for example?
John.

Similar Messages

  • Conditionally displayed columns of interactive report not displayed

    We have an interactive report in which few of the columns have been defined with conditions for display.
    But on the interactive report page, when the conditions are satisfied these columns do not display in the report by default.
    These columns are found in the 'Select Columns' -> 'do not display' pane. Everytime the report is run, these columns need to be selected using the select column.
    Is there anyway to make the columns appear in the report by default, when conditions are true.

    Thanks Jari for your help.
    For this issue, we finally came up with a work around.
    we removed the conditions from all the columns then ran the application report page.
    Clicked on Select Columns and moved the columns from the do not display pane to the right pane.
    Ordered them as needed. Then saved the report as primary.
    Then again went to the edit page-> interactive report and applied the conditions to the necessary columns.
    and it worked.
    When I went to the report these columns are displayed by default.

  • Conditional Display of Interactive Report Based on Field Above

    Page one has simple text box entry for a Vendor # with a button that branches to a page displaying information for that vendor. In a region below, I would like an interactive report that displays all of the item and description that vendor provides to our company. I have tried to use the Conditional Display to disply only items in the report but have been unsuccessful. Your help is appreciated!
    Thanks.

    Hello user2961006 (please tell us your name),
    I understand your question to be, "how do I make a report on page two only show rows related to an item entered on page one". Putting a condition on a region isn't the answer here - you want the report to always display, but just with different rows depending on the vendor number entered. A condition on a region is used to either display the region or not.
    What you need to do is put a WHERE clause on the SELECT statement that your report is using to get its data. For example, if the item holding the entered vendor number is P1_VENDOR_NUM, the SELECT statement for your report would look something like:
    SELECT item, description
      FROM my_items
    WHERE vendor_num = :P1_VENDOR_NUMNote my_items is a fictitious name. This will tell the DB to only retrieve rows where the vendor number is the vendor number entered by the user.
    Hope this helps, I'll gladly accept reward points if it does ;-)
    John

  • MAKE BUTTON CONDITIONAL DISPLAY IN A REPORT BASED ON STATUS OF COL VALUE

    hello,
    can anyone help me out with this issue.
    Like I have a normal SQL report with buttons update,delete,insert and I wanted to display these buttons conditionally based on the value of the "status" column.
    For Example: if the status columnvalue is 'DEV' then only display the buttons otherwise don't display them.
    thanks,
    Orton

    I would use a CASE statement in the select....
    each CASE would be an img src tag for a different button if the button is an image.
    does that make sense? I can include an example if you would like...

  • Conditional display in the report.

    Hi, I have a report on the page that dislplays values (numeric). Is it possible to dislplays null values as N/A in the column?
    Thanks in advance.
    Robert

    Hi,
    In classic and interactive report have option "Show Null Values as"
    How to replace Interactive Report "-" for null columns fields with blanks?
    Br,Jari

  • Conditional Display of Interactive Report Based On Different SQL Query

    Hello,
    I have two drop down list on top of my page and below that I have a interactive report.
    Based on user selection of values from drop down, interactive report should change based on different SQL queries.
    Is it possible to have different SQL queries based on values from drop down and generate interactive report based on that?
    Thanks

    I am passing my drop down value to apex_collection like the following:
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY( p_collection_name => 'IR_LIST',
    p_query => REQUEST_VIEW(:P12_VIEW));However when I change the values from the drop down, :P12_VIEW is not getting the value from drop down even though I could see value being changed in URL. I have created page process for apex_collection
    Process Point - OnLoad - Before Header
    Run Process - Once Per Session or When ResetCould someone suggest as why I cannot get the values in function when drop down is changed?
    Regards

  • Display columns on report

    How does the value is fetched from PL/Sql (Complex stored procedure calling different views) and display on the report

    What exactly you need.
    If you want to get data from proceidrue you can call it or you can u use formula
    if it is db procedure, you can include in select statement in data model
    Please provide exact your problem instead of general one

  • Conditional display of report

    hi
    i have a batch table (batch_id,batch_name,batch_type..)
    i have to pass batch_name and batch_type as a parameter so i have 2 item on a page
    batch_name :-select list
    batch_type :-select list with submit and it values select from the values of batch_name
    create button :- when i hit the create buttons it will show me 2 report in the same page based on the latest batch_id
    so i have to apply conditional display on the reports
    what would be the condition for the conditional display so that i will get to reports in the same page
    dependency between report is batch_id
    Regards
    Amu

    Hi Tobias,
    i have interactive report.
    the content of report is displayed based on the input values(from select lists),
    1)select list -p_cust
    2)select list-p_switch(the values of the list select from the values of p_cust i.e select d r from switch_t where cust_name=:p_cust)
    requirement like this
    1)First i have to select a customer
    2)when i select a values (switch) from the switch select list -the result of the report for a paticular switch .
    e;g-p_cust='ABC' and p_switch='XYX'
    the output of the report would be the all records for 'ABC' customer for a Paticular Switch that is-'XYZ'
    3) again when i select a value "All_switches" from the switch select list it should returns all the records for all switches
    Regards
    Amu

  • Conditional display using Pl/SQL function body returning a boolean

    I am having issues with conditional display of a report.
    I have to select lists: p50_facility and p50_supervisor.
    I have entered the below pl/sql function body returning a boolean
    Begin
    if (:p50_facility is null or
    :p50_supervisor is null) THEN
    Return False;
    Else
    Return True;
    End if;
    End;
    No matter what values my items are set to (null, not null), the report shows.
    What am I doing wrong?

    Hi,
    The values for the lists will be null only until the first time the page is submitted. Thereafter, the value is likely to be '%null%'
    You will need to do something like:
    BEGIN
    IF (:P50_FACILITY IS NULL OR :P50_FACILITY = '%' || 'null%' OR :P50_SUPERVISOR IS NULL OR :P50_SUPERVISOR = '%' || 'null%') THEN
      RETURN FALSE;
    ELSE
      RETURN TRUE;
    END IF;
    END;Andy

  • Two different condition types in one report

    Hello,
    i have a problem with the conditional display of a report.
    I want to use two different condition types for one report.
    For example I want to show the report only when the page is not in printer friendly mode and when the value of an item is NULL.
    Is that possible?
    Has anyone a solution for this problem?
    Thank you,
    Tim

    Tim,
    you can use
    IF V('PRINTER_FRIENDLY') = 'YES' AND :P1_ITEM IS NOT NULL THEN RETURN FALSE;
    ELSE RETURN TRUE;
    END IF;
    in the Conditional Display picking PL/SQL Function Body returning a Boolean.
    Denes Kubicek

  • Conditional Display - ideas needed

    Hello
    I have this:
    http://vels.dk/tmp/display.jpg
    I would like to show only "Choice invoices view" region when the user come to the page.
    When the user press the "Show All" or "Last x days" then I have a 2 Branches. The Branches set a hidden item to 0 or 1 (1= all 0= last x days)
    The user surf to another page in the application and come back to the page. But now the "Invoice" region is display... How do I solve this? I have tryed some REQUEST, but the "next row select" belov the table has no REQUEST functions :(
    Some ideas?
    Best Regrads
    Jesper Vels

    Hi Jesper,
    I would suggest something like the following:
    1 - Your hidden field should have THREE values - 0=Hide, 1=All and 2=Last x days
    2 - The default value should be 0
    3 - Have a conditional display on the report's region that only displays the report is the value of the hidden item is not 0
    4 - Your two buttons can then set the value of the hidden field to 1 or 2 and the SQL statement should include a WHERE clause something like:
    WHERE ((:P1_SHOW = 1 AND ....)
    OR (:P1_SHOW = 2 AND ...))
    5 - Create an application computation for the hidden item
    6 - This should set the value to 0 when the current page is NOT this page - therefore, whenever the user moves to any other page, the value will be set to 0 and the report will be hidden
    Regards
    Andy

  • Conditional display of list box in form (depends on other report column)

    Hello,
    i have one question regarding conditional display in forms.
    I have a tabular form where only one column ("flag") is updateable, all other columns are visible only.
    I changed the column "flag" from "standard report column" to "Select list (static lov)", which has the values "yes" and "no".
    This works fine. But in the running form i want to display the list box only if the column "status" = 'ERROR'.
    The column "status" can have the values 'ERROR' and 'OK'.
    When one record has "status" = 'OK', the column "flag" should not display the list box (only empty column row),
    when one record has "status" = 'ERROR" the column "flag" should display the list box.
    The idea behind is that if a record has "status" = 'ERROR' i have the possibility to confirm that "error" and update the column "flag" with "YES". This should only be possible for errors.
    This is my main problem.
    I tried with conditional display, but this hides or shows the column for the whole report/form, not on record level...
    The second problem then is, that if the column "flag" is changed to "YES" in case of column "status" = 'ERROR', then it should not be possible to change it again to 'NO". At the beginning it is 'NO', but once changed to 'YES' it should not be changeable any more.
    Is this possible?
    Thank you in advance,
    Matthias

    Hello Mike
    your solution sounds good, but unfortunately it is not working.
    None of my 2 columns are displayed, although i tried it as you wrote and the conditions should match...
    But i am no sure if this can work. If so, the 2 columns must fuse to 1 column:
    ID STATUS FLAG
    1 ERROR yes/no => comes from column1
    2 OK (null => comes from column2
    so "FLAG" must display column1 and column2 in one column. is that possible?
    regards,
    Matthias

  • Conditional display of a column link in sql updateable report

    Hi There,
    I've attempted to look thru the Apex forum about using an Authorization Scheme in an SQL Query (Updateble Report) where I can conditionaly enable (display) a column link based upon a value in the report but alas I cannot find a solution.
    What I have is a SQL Query (updateable report). What I want to achieve is dependant on the value of one of the columns in the report query conditionaly display a column link for the row being displayed. For example if the report dispayed the data from emp, dept only display a column link for rows where the deptno = 100 otherwise don't display the column link. Is this possible to achieve?
    I've tried to define in the authorizatuon scheme in the where clause of an SQL Statement to reference the report column as #deptno# but this doesn't work.
    TIA

    Boketi,
    I was unsuccessful yesterday in demoing what I believe you want to achieve. It appears that an authorization scheme will not process row by row within a standard report so as to allow a conditional display of a link or any other column attribute. You can conditionally display a column by the use of a page item but this method appears to be all or nothing.
    I was successful when I coded the return of the empno via a Case statement but the Link still appeared even though there was no value (empno) to link with. So essence the link to you to a blank for with no PK to read the database by.
    SELECT CASE WHEN deptno = 10 THEN empno ELSE NULL END empno,
           ename,
           job,
           hiredate,
           sal,
           comm,
           deptno,
           phone_nbr
    FROM   empJeff

  • Conditionally Display Report Column

    hi,
    i want to display report column Conditionally .
    i have created a report . there are multiple column Like. BILL NO,BILL DATE, PAYMENT MODE, CHEQUE NO, CHECQUE DATE, TOTAL AMOUNT
    Now i want to display only BILL NO,BILL DATE, PAYMENT MODE, TOTAL AMOUNT when i select PAYMENT MODE Cash in Select List ITEM
    And
    i want to display only BILL NO,BILL DATE, PAYMENT MODE, CHEQUE NO, CHEQUE DATE,TOTAL AMOUNT when i select PAYMENT MODE Cheque in Select List ITEM
    How Can i Conditionally Display Report Column.
    Thanks
    Manoj KAushik

    Hi,
    try this as report query - pl/sql function returning select statement.
    declare
         qry_str varchar2(1000);
    begin
       if :p1_select_list = 'PAYMENT MODE' then
            qry_str := 'select BILL NO,BILL DATE, PAYMENT MODE, TOTAL AMOUNT from yourTable';
       else
           qry_str := 'BILL NO,BILL DATE, PAYMENT MODE, CHEQUE NO, CHEQUE DATE,TOTAL AMOUNT';
        end if;
         return qry_str;
    end; Regards,
    Shijesh

  • Conditional display in a SQL-Report/Report Region

    Hi,
    here I have an example for "Conditional display in a SQL-Report/Report Region". I figured it out in Firefox 3.6.2 using Firebug as development tool on Apex 3.2.1.00.12.
    First you have to put the following javascript code in the Page HTML-Header:
    <script type="text/javascript">
    <!--
    // SOURCE
    // W:\oracle\PRJ DWLS\javascript.07.js
    // Beispiel Funktion zur bedingten Formatierung einer Tabellenzelle.
    // Help (Substitution Strings):
    // http://htmldb.oracle.com/pls/otn/wwv_flow_help.show_help?p_lang=de&p_session=2412201185523196&p_flow_id=4003&p_step_id=420,4003
    // HTML Expression:
    // <script>ex_conditional_td('R094260001010', #ROWNUM#, #COLNUM#-1);</script>#DFT_COND1#
    function ex_conditional_td
    ( p_id
    , p_rownum
    , p_cellnum
      var l_td;
      l_td = vd_getColumn(p_id, p_rownum, p_cellnum);
      // hier die Bedingung definieren
      if (true) {
        l_td.style.color = '#808080';
    }  // -- eof ex_conditional_td -- //
    // Beispiel Funktion zum Abstellen der onMouse Funktionalität der Tabellenzeile
    // HTML Expression:
    // <script>ex_conditional_tr('R094260001010', #ROWNUM#);</script>#DFT_ID#"
    function ex_conditional_tr
    ( p_id
    , p_rownum
      var l_tr;    // TABLE.TR
      var l_td;    // TABLE.TR.TD
      if (true) {
        l_tr = vd_getRow(p_id, p_rownum);
        l_tr.onmouseover = null;
        l_tr.onmouseout  = null;
        for (var i=0; i<l_tr.cells.length; i++) {
          l_td = l_tr.cells;
    l_td.style.backgroundColor = '#DDDDDD';
    } // -- eof ex_conditional_tr() -- //
    var g_DEBUG = false;
    var g_TBODY = null;
    // Liefert das Body-Element der Tabelle mit der ID <p_id>.
    // Parameter
    // p_id - die Id der HTML-Tabelle
    // Return
    // das Body-Element oder NULL, wenn die Zeile nicht gefunden wurde
    function vd_getBody
    ( p_id
    if (g_TBODY == null) {
    var l_table = null;
    l_table = document.getElementById( p_id );
    if (l_table == null) {
    l_table = document.getElementByName( p_id );
    if (l_table != null) {
    if (vd_debug()) {
    alert("Tabelle gefunden, " + l_table.nodeName);
    g_TBODY = vd_search( l_table, 'TD', 't10data', 'TBODY');
    return g_TBODY;
    } // -- eof vd_getBody() -- //
    // Liefert die Zeile <p_rownum> der HTML-Tabelle mit der Id <p_id>.
    // Parameter
    // p_id - die Id der HTML-Tabelle
    // p_rownum - die Zeilennummer
    // Return
    // die Zeile oder NULL, wenn die Zeile nicht gefunden wurde
    function vd_getRow
    ( p_id
    , p_rownum
    var l_body = vd_getBody(p_id);
    if ( l_body != null
    && l_body.nodeName == 'TBODY'
    && l_body.children[p_rownum].nodeName == 'TR') {
    return l_body.children[p_rownum];
    else {
    return null;
    } // -- eof vd_getRow() -- //
    // Liefert die Spalte <p_column> der Zeile <p_rownum> der HTML-Tabelle mit der
    // Id <p_id>.
    // Parameter
    // p_id - die Id der HTML-Tabelle
    // p_rownum - die Zeilennummer
    // p_column - der Index der Spalte / Zelle
    // Return
    // die Zelle oder NULL, wenn die Zelle nicht gefunden wurde
    function vd_getColumn
    ( p_id
    , p_rownum
    , p_column
    var l_tr = vd_getRow(p_id, p_rownum);
    if ( l_tr != null
    && l_tr.nodeName == 'TR'
    && l_tr.children.length >= p_column
    && l_tr.children[p_column].nodeName == 'TD') {
    return l_tr.children[p_column];
    else {
    return null;
    } // -- eof vd_getColumn() -- //
    // Rekursives Suchen nach einem Node.
    // Zweck: Das bedingte Formatieren einer Tabellenzelle in einem Apex Standard
    // SQL-Report.
    // Diese Funktion durchsucht rekursiv, ab einem Ausgangsknoten <p_node>, alle
    // darunter befindlichen Elemente, ob in dem Element <p_seachIn> sich die
    // Klasse <p_class> befindet.
    // Bei Standard-Reports ist die Reportzelle (TD) mit der Klasse
    // "t10data" formatiert.
    // Zunächst muss dazu die Tabellenzelle (TD) selbst, die übergeordnete
    // Tabellenzeile (TR), der Tabellenbody (TBODY) oder die Tabelle (TABLE)
    // selbst ermittelt werden.
    // Der Beispielaufruf:
    // var l_body;
    // var l_node = document.getElementById( 'R112233' );
    // l_body = search( l_node, 'TD', 't10data', 'TBODY');
    // durchsucht also das mit der Id "R112233" versehene Element [der Report, für
    // den in Apex eine statischen ID vergeben werden musste] rekursiv, bis er
    // die [erste] Tabellenzelle "TD" findet, die als Klasse "t10data"
    // definiert hat. Für diese ermittelt er dann das übergeordnete TBODY-Element.
    // Parameter
    // p_node - das Ausgangselement
    // p_searchIn - der Knotenname, der durchsucht werden soll
    // [node.nodeName == p_searchIn]
    // p_class - der Name der CSS Klasse
    // [node.classList[<index>] == p_class
    // p_parentName - der Name [node.parentNode.nodeName == p_parentName]
    // des Elements, das zurückgeliefert werden soll. Wird als
    // p_parentName der Suchname p_searchIn angegeben, wird
    // das Element selbst zurückgegeben.
    // Return
    // das per p_parentName gesuchte Element (TD, TR, TBODY, TABLE)
    function vd_search
    ( p_node
    , p_searchIn
    , p_class
    , p_parentName
    var LN = "vd_search";
    var l_element = null;
    // DEBUG
    if (vd_debug()) {
    alert(LN + ":" + "Untersuche " + p_node.nodeName + ", id=" + p_node.id);
    // 1) der aktuelle Knoten ist der, der durchsucht werden soll
    if (p_node.nodeName == p_searchIn) {
    if (p_node.classList.length > 0) {
    for(var c=0; c<p_node.classList.length; c++) {
    if (p_node.classList[c] == p_class) {
    // Parent Node dynmisch suchen
    l_node = p_node;
    if (l_node.nodeName == p_parentName) {
    return l_node;
    while(l_node != null && l_node.parentNode != null) {
    if (l_node.parentNode.nodeName == p_parentName) {
    return l_node.parentNode;
    else {
    l_node = l_node.parentNode;
    // 2) wenn nicht 1) oder nicht in 1) gefunden, dann in den Kindelementen
    // weitersuchen
    if (p_node.children.length > 0) {
    var i = 0;
    while (i<p_node.children.length && l_element==null) {
    l_element = vd_search( p_node.children[i], p_searchIn, p_class, p_parentName);
    i++;
    return l_element;
    } // -- eof vd_search() -- //
    // Gibt an, ob Debug ein- (true) oder ausgeschaltet (false) ist.
    // Return
    // true - debug ist eingeschaltet
    // false - debug ist ausgeschaltet
    function vd_debug()
    return g_DEBUG;
    -->
    </script>
    Maybe you have to modify the "vd_getBody" function. I'm searching the table cell with having the class "t10data". When you use another theme, there's maybe another class used.
    Second is, that you set an static id for your report region. I prefer this structure:
    R<app-id><page-id><seq> (Raaaaappppsss) e.g. R094260001010.
    First example is to turn off the onMouse-Effect. Maybe on the first or last column definition you put this code in the "HTML-Expression" area:
    <script>ex_conditional_tr('R094260001010', #ROWNUM#);</script>#ID#This will call the example function ex_conditional_tr with the parameter
    a) the region id
    b) the rownum (as oracle always starts with 1 this is the first data row [rownum=0 is the table header row])
    Second example is the conditional formatting of a table cell. Put this in the HML-Expression area:
    <script>ex_conditional_td('R094260001010', #ROWNUM#, #COLNUM#-1);</script>#ENAME#This will call the example function ex_conditional_tr with the parameter
    a) the region id
    b) the rownum
    c) the cellnum (here we have to subtract 1 to get the "real" cell index)
    The "ex_conditional" functions are just a representation of how to get the row or cell node.
    Hope this help a bit.
    Tom

    I would use a CASE statement in the select....
    each CASE would be an img src tag for a different button if the button is an image.
    does that make sense? I can include an example if you would like...

Maybe you are looking for