With dynamic CreateViewObject How To "Navigate N rows at a time using DataTags" fails

I have worked with the example on this link:
http://otn.oracle.com/docs/products/jdev/howtos/jsp/traverse_n.ht
ml
It works fine in case I am using the View Object created in the
Package as the example is using.
However, this sample does not navigate; through record as
expected and keep displaying same records, when I create dynamic
view using CreateViewObject tag like this:
<jbo:CreateViewObject appid="TravelPkgModule" name="test">
select vc_comp_code,vc_voucher_no from hd_travel_voucher
</jbo:CreateViewObject
Help me in navigating with dynamic view objects.

moreover,
suppose total records in a set are = 100
and range size = 10
on first click on next set, records from 1 to 10 are displayed.
on second click on next set, records from 11 to 20 are displayed.
on third or N'th click on next set, records from 11 to 20 are
displayed and not from 21 onwards are displayed.
Code attached.
<%@ page errorPage="errorpage.jsp"
contentType="text/html;charset=WINDOWS-1252"
import="java.util.*,java.text.*" %>
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<HTML>
<BODY>
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<jbo:ApplicationModule
configname="TravelPkg.TravelPkgModule.TravelPkgModuleLocal"
id="TravelPkgModule" username="ebiz" password="ebiz" />
<jbo:DataSource id="Qvoucher" appid="TravelPkgModule"
viewobject="HdTravelVoucherView" rangesize="2">
</jbo:DataSource>
<%
%>
Next Set
Previous Set
<table border="1">
<%
oracle.jbo.RowSet rs = Qvoucher.getRowSet(); // see if we have
a navigation command
if(request.getParameter("nav") != null)
     String sNavigation = request.getParameter("nav");
if(sNavigation.equalsIgnoreCase("nextset"))
     %>kiran = <%     
     rs.scrollRange(rs.getRangeSize());
else
     rs.scrollRange(-rs.getRangeSize());
oracle.jbo.Row rows[] = rs.getAllRowsInRange();
for(int i = 0; i < rows.length; i++)
     rs.setCurrentRow(rows);%>
     <tr><td>
     <jbo:ShowValue datasource="Qvoucher"
dataitem="VcEmpCode"></jbo:ShowValue></td>
     <td><jbo:ShowValue datasource="Qvoucher"
dataitem="VcVoucherNo"></jbo:ShowValue></td>
<% }%>
LENGHT = <%=rows.length%>
</table></BODY></HTML>
<jbo:ReleasePageResources releasemode="Reserved" />

Similar Messages

  • Problem with - "Navigate N rows at a time using DataTags"

    I have worked with the example on this link:
    http://otn.oracle.com/docs/products/jdev/howtos/jsp/traverse_n.ht
    ml
    It works fine in case I am using the View Object created in the
    Package as the example is using.
    However, this sample does not navigate; through record as
    expected and keep displaying same records, when I create dynamic
    view using CreateViewObject tag like this:
    <jbo:CreateViewObject appid="TravelPkgModule" name="test">
         select vc_comp_code,vc_voucher_no from hd_travel_voucher
    </jbo:CreateViewObject
    Help me in navigating with dynamic view objects.

    moreover,
    suppose total records in a set are = 100
    and range size = 10
    on first click on next set, records from 1 to 10 are displayed.
    on second click on next set, records from 11 to 20 are displayed.
    on third or N'th click on next set, records from 11 to 20 are
    displayed and not from 21 onwards are displayed.
    Code attached.
    <%@ page errorPage="errorpage.jsp"
    contentType="text/html;charset=WINDOWS-1252"
    import="java.util.*,java.text.*" %>
    <%@ page contentType="text/html;charset=WINDOWS-1252"%>
    <HTML>
    <BODY>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <jbo:ApplicationModule
    configname="TravelPkg.TravelPkgModule.TravelPkgModuleLocal"
    id="TravelPkgModule" username="ebiz" password="ebiz" />
    <jbo:DataSource id="Qvoucher" appid="TravelPkgModule"
    viewobject="HdTravelVoucherView" rangesize="2">
    </jbo:DataSource>
    <%
    %>
    Next Set
    Previous Set
    <table border="1">
    <%
    oracle.jbo.RowSet rs = Qvoucher.getRowSet(); // see if we have
    a navigation command
    if(request.getParameter("nav") != null)
         String sNavigation = request.getParameter("nav");
    if(sNavigation.equalsIgnoreCase("nextset"))
         %>kiran = <%     
         rs.scrollRange(rs.getRangeSize());
    else
         rs.scrollRange(-rs.getRangeSize());
    oracle.jbo.Row rows[] = rs.getAllRowsInRange();
    for(int i = 0; i < rows.length; i++)
         rs.setCurrentRow(rows);%>
         <tr><td>
         <jbo:ShowValue datasource="Qvoucher"
    dataitem="VcEmpCode"></jbo:ShowValue></td>
         <td><jbo:ShowValue datasource="Qvoucher"
    dataitem="VcVoucherNo"></jbo:ShowValue></td>
    <% }%>
    LENGHT = <%=rows.length%>
    </table></BODY></HTML>
    <jbo:ReleasePageResources releasemode="Reserved" />

  • How to update multiple rows in one query using php

    i am new to this can any one help me how to update multiple rows at a time i am doing an school attendance page

    Often the situation is such that you have multiple courses across a range of dates.So students may take more than one course, and you need to track attendance for each course date. The following graphic demonstrates this:
    In such a situation, you need four database tables as follows:
    students (student_id, student_name, etc.)
    courses (course_id, course_name, etc.)
    students_courses (student_id, course_id)
    attendance (student_id, course_id, dater)
    A fifth table may also be needed to define the dates of courses, but you may also be able to build this array programmatically by using PHP's robust date functions, which can give you, for instance, all the Tuesdays and Thursdays between a start date and end date.
    The students_courses table simply keeps track of which students are taking which courses, so it has just two columns for the primary keys of both of the main tables. The attendance table is similar, but it also includes a date field. The following view of the attendance table demonstrates this:
    So if David's solution does cover your needs, consider yourself lucky, because this could quickly grow from a beginner-appropriate project to a moderately advanced one.

  • How can I change the file download time using Adobe Send? Adobe SendNow had a lot more options.

    How can I change the file download time using Adobe Send? Adobe SendNow had a lot more options.I don't see nay with Adobe Send.

    There isn't a feature in Adobe Send for setting and end-date for a file's availability. At any time, you can Unshare the file, however.

  • TS4268 how to change apple id on face time using macbook air

    how to change apple id on face time using macbook air

    coolguy1981 wrote:
    How can u format the hard drive since I am using the MBA. Formatting will delete also the recovery space and how to start with new installation? This is not going to work.
    No, that's not true. This is one of the 'benefits' of Lion (if you want to see it that way). The OS is on a separate partition and you can reinstall the OS without another physical drive.
    What you do is reboot the computer while holding down the 'option' key. From the list of disks that show up (you can release the 'option' key now), choose 'Recovery HD'.
    When you get to what looks like a Desktop, choose 'Reinstall OS X Lion'.  Shortly after this, you will get asked for your Apple ID. Put your own Apple ID in the box and everything should proceed smoothly from there.

  • How to run  multi reports at a time using button

    dear all
    i have a button on form, that call a report abc.rep. when i press the button report is displayed. now i want to show another view of that report when i press button second time. but it doesn't appear. when i close the first report that it gets run.
    how can i run same report multiple time using this button.
    regards.
    Asif iqbal
    Software Engineer
    (Karachi, Pakistan).

    HI
    Call you report using this code then you can run more then 1 report at the same time
    declare
    AppID PLS_INTEGER;
    begin
    AppID := DDE.App_Begin('RWRUN60 module=d:\reports\LEDGER_NEW.Rep userid='||:global.the_username||'/'||:global.the_password||'@'||:global.the_Connect||' maximize=yes user_id='||:global.the_username||' user_password='||:global.the_password||' user_connect='||:global.the_connect, DDE.App_Mode_Maximized);
    end;
    Rizwan
    www.rizwanshafiq.blogspot.com

  • How to get multiple rows at one time in a table?

    hi
    I have a JTable bound with ViewObject and i use multiple selection mode setting to get selection row.
    My question is when i select more then one row at one time i only can get those index from JTable but can't get those rows from ViewObject.is it possible to get rows from ViewObject? or how to use JTable row index to get row from ViewObject?

    repost

  • How to display the rows number of times by giving the column values?

    Hi All,
    I want to display the rows number of times as the value exists in num column in the below query
    with t AS
       ( SELECT 'venkatesh' NAME, 'hyd' LOC, 2 NUM FROM DUAL
         UNION ALL
         SELECT 'prasad' NAME, 'hyd' LOC, 3 NUM FROM DUAL
         UNION ALL
         SELECT 'krishna' NAME,     'hyd' LOC, 1 NUM FROM DUAL )
      SELECT T.* FROM T
      CONNECT BY ROWNUM <= NUM
    Expected output:
             venkatesh            hyd      2
             venkatesh            hyd        2
             prasad                 hyd        3
             prasad                   hyd      3
             prasad                   hyd      3
             krishna           hyd       1Edited by: Nag Aswadhati on Nov 1, 2012 12:34 AM

    Nag Aswadhati wrote:
    Hi All,
    I want to display the rows number of times as the value exists in num column in the below query
    Expected output:
    venkatesh            hyd      2
    venkatesh            hyd        2
    prasad                 hyd        3
    prasad                   hyd      3
    prasad                   hyd      3
    krishna           hyd       1Using Connect By:-
    with t AS
       ( SELECT 'venkatesh' NAME, 'hyd' LOC, 2 NUM FROM DUAL
         UNION ALL
         SELECT 'prasad' NAME, 'hyd' LOC, 3 NUM FROM DUAL
         UNION ALL
         select 'krishna' name,     'hyd' loc, 1 num from dual )
      select t.name, t.loc
      from t
      connect by level <= num
             and name = prior name
             and (prior sys_guid() is not null);
    NAME      LOC
    krishna   hyd
    prasad    hyd
    prasad    hyd
    prasad    hyd
    venkatesh hyd
    venkatesh hyd
    6 rows selected

  • How to fetch n rows at a time?

    I know that I can use the rownum function to return n rows at a time, but the rownum function will be applied after all rows are returned by the query, which is bad for performance since my table has lot of rows. What I need is really to fetch n rows at a time from the DB.
    Regards

    I am not sure what you mean by "the rownum function will be applied after all rows are returned by the query", but that appears to be an incorrect statement. If you have a ROWNUM limit in a query, Oracle knows that it only has to fetch the first M rows.
    If you are looking for an ability to page through query results, there is an AskTom thread on pagination in SQL.
    This would only be appropriate, though, if you expect that users will only ever want the first few pages of results (i.e. users of Google aren't going to look through every page of results for generic search terms, they are going to look at page 1, maybe page 2 and page 3, and then stop). If the application is going to process all the rows that the query returns, you'd need some other construct and we would need some additional requirements. Your client application can probably fetch N rows at a time. If the client is PL/SQL, a BULK COLLECT with a LIMIT clause may also be appropriate.
    Justin

  • How to fix the row-height in excel using ole2

    hi
    I want to fix row height in excel using ole2.
    i wrote the below code but no effect. please help me.
    Arg := ole2.create_arglist;
         ole2.add_arg(Arg,1);
         rrow := ole2.get_obj_property(WorkSheet,'Rows',Arg);
         ole2.destroy_arglist(arg);
         ole2.set_property(rrow,'Height',50);
    kanish

    It's solved
         ole2.set_property(rrow,'RowHeight',30);
    kanish

  • Multi-dimensional array with dynamic size - how to?

    Hi
    I have a CONSTANT number of buckets. Each of them has to take a VARIOUS number of data series. The data series have one VARIOUS length per bucket. I'd like to index the buckets like an array to loop over them.
    So basically I need something like a multidimensional array with constant first dimension (bucket index), but dynamic second (data series index within bucket) and third (data point index within data series) dimension. What's the best way to do so?
    I should also remark that data series can get really big.
    Thanks in advance and best regards,
    Michael

    Hi Michael,
    the usual way is to use an array of cluster.
    Put your "2nd" and "3rd" data into a cluster and then make an 1D array of that cluster...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to select a row for update values, Using CTEs or suitable method

    HI All,
    I have a table as claim_data as below.
    claim_id   
    amount         change_monthkey
             created_monthkey
             ord
    54511      
    300            201304         
             201304          
              1
    54511      
    0              201305         
             201304          
              2
    120301     
    250            201502         
             201502          
              1
    120624     
    150            201502         
             201502          
              1
    120624     
    0              201503    
                  201502          
              2
    I want to isolate rows which appear in the table and do a update using below query ( This query is already in a procedure, so I just looking for a suitable way to modify it to support my task )
    In the above e.g.  ONLY row containing claim_id = 120301 needs to update (amount  as updated_amount)
    I use following query, but it update other rows as well, I want a suitable query only to capture rows of nature claim_id = 120301 and do this update? Is there any functions that I could use to facilitate my task??
    select
         a.claim_id
        , a.Created_MonthKey
        , a.Change_MonthKey
        , a.amount - ISNULL(b.amount,0.00) as amount_movement
        ,a.amount  as updated_amount   --- >> I need help here??
        FROM claim_data a
    LEFT JOIN claim_data b
        ON a.claim_id = b.claim_id
        AND b.Ord = a.Ord - 1
    Thanks
    Mira

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your datC1. You should follow ISO-11179 rules for naming data elements. You do not know this IT standard.
    You should follow ISO-8601 rules for displaying temporal datC1. We need to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. 
    And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> I have a table AS claim_data AS below. << 
    Thanks to your lack of netiquette, we have no name, no DDL, no keys and have to re-type the raw data into SQL, guess at everything! Does your boss treat you with the same contempt? 
    Think about how silly “_data” is AS an attribute property! What tables do you have without an data in them? You had to give this meta-data in 1970's operating systems, FORTRAN compilers, etc. but we do not do this today. I see you use “A”, “B”, etc for table
    aliases This is the name of the disk or tape drive in a 1970 computer! In SQL we use helpful, meaningful table aliases so code is easier to maintain. I see you also use the old punch card trick of putting a comma at the front of each line of code. 
    The column named “ord” is a mathematical fiction for ordinal sets. I think you meant to use it as a non-relational sequential number to let you keep writing 1970's COBOL is T-SQL. We have not used the old Sybase ISNULL() since we got COALESCE() in SQL-92. They
    are actually different. 
    First, let's post what you should have posted if you followed forum rules: 
    CREATE TABLE Claims
    (claim_id CHAR(5) NOT NULL,
     claim_amount DECIMAL (8,2) NOT NULL
     CHECK (claim_amount >= 0.00),
     change_month_name CHAR(10) NOT NULL
     REFERENCES Month_Period(month_name),
     creation_month_name CHAR(10) NOT NULL
     REFERENCES Month_Period(month_name),
     ord INTEGER NOT NULL, -- NO!! Awful design! 
     PRIMARY KEY (claim_id, ord)); --required by definition
    Since SQL is a database language, we prefer to do look ups and not calculations. They can be optimized while temporal math messes up optimization. A useful idiom is a report period calendar that everyone uses so there is no way to get disagreements in the DML.
    The report period table gives a name to a range of dates that is common to the entire enterprise. 
    CREATE TABLE Month_Periods
    (month_name CHAR(10) NOT NULL PRIMARY KEY
     CHECK (month_name LIKE '[12][0-9][0-9][0-9]-[01][0-9]-00'),
     month_start_date DATE NOT NULL,
     month_end_date DATE NOT NULL,
     CONSTRAINT date_ordering
     CHECK (month_start_date <= month_end_date),
    etc);
    These report periods can overlap or have gaps. I like the MySQL convention of using double zeroes for months and years, That is 'yyyy-mm-00' for a month within a year and 'yyyy-00-00' for the whole year. The advantages are that it will sort with the ISO-8601
    data format required by Standard SQL and it is language independent. It has been proposed for the Standard, but is not yet part of it. The regular expression pattern for validation is simple. 
    INSERT INTO Claims  -- a mess! 
    VALUES
    ('054511', 300.00, '2013-04-00', '2013-04-00', 1)
    ('054511', 0.00, '2013-05-00', '2013-04-00', 2),
    ('120301', 250.00, '2015-02-00', '2015-02-00', 1),
    ('120624', 150.00, '2015-02-00', '2015-02-00', 1),
    ('120624', 0.00, '2015-03-00', '2015-02-00', 2);
    Now, throw this mess out. It looks like your repeat the claim creation date over and over and over. It looks like you crammed a claim creation and a claim history together in one table. 
    >> I want to isolate rows which appear in the table and do a update using below query (This query is already in a procedure, so I just looking for a suitable way to modify it to support my task). 
    In the above e.g. ONLY row containing claim_id = '120301' needs to update (amount AS updated_amount)
    >> I use following query, but it update other rows as well, I want a suitable query only to capture rows of nature claim_id = '120301' and do this update? <<
    No. SQL is set oriented so an update applies to the whole table. You can filter out rows in a WHERE clause. 
    CREATE TABLE Claims
    (claim_id CHAR(5) NOT NULL PRIMARY KEY,
     claim_amount DECIMAL (8,2) NOT NULL
     CHECK (claim_amount >= 0.00),
    claim_creation_month_name CHAR(10) NOT NULL
     REFERENCES Month_Period(month_name));
    See how this works? 
    INSERT INTO Claims  -- a mess! 
    VALUES
    ('054511', 300.00, '2013-04-00'),
    ('120301', 250.00, '2015-02-00'),
    ('120624', 150.00, '2015-02-00');
    Normalize the table: 
    CREATE TABLE Claim_Changes
    (claim_id CHAR(5) NOT NULL 
      REFERENCES Claims(claim_id)
      ON DELETE CASCADE,
     change_month_name CHAR(10) NOT NULL
      REFERENCES Month_Period(month_name),
     PRIMARY KEY (claim_id, change_month_name),
     change_amount DECIMAL (8,2) NOT NULL
     CHECK (change_amount >= 0.00)
    INSERT INTO Claims_Changes
    VALUES
    ('054511', 0.00, '2013-05-00'),
    ('120624', 0.00, '2015-03-00');
    Now you just add another change row to the history. There is no update. If you want to the delta and so forth, use LAG() and other window functions. 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to set current row in table after use tab key on inputText

    Hello all,
    My first post .., I'm newbie in ADF and I will try to explain my problem.
    For the moment we use ADF 11g (11.1.1.4), in a jsff page I have a table with an inputText column.
    On the valueChangeListener of the inputText, I invoke a method in a viewScope bean which call an EJB method, make some services in the EJB on the line modified. After that I refresh the VO and the table (because others values on the line have been modified) and reset the focus on the same inputText modified by the user with javaScript because focus was lost after refresh.
    So far, everything works fine.
    When I use the arrow keys to change the selected row in the table, it's work fine (focus is still in the next or previous inputText), but if user try to use tab key to change the current line, the inputText on the next line have the focus but the current row of the table is not changed (I think it's normal).
    My question : how can I change the current row after tab key pressed in this case ?
    I don't know if it's really clear, not easy to explain, don't hesitate to ask more details.
    Thanks in advance.

    Frank Nimphius wrote:
    Hi,
    My question : how can I change the current row after tab key pressed in this case ?
    Use a client event to listen for the keyboard entry and intercept the tab. The use af:serverListener to call the server to set the rowKey on the table and issue a PPR for the table to re-paint
    See sample 11 on http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html#CodeCornerSamples
    to learn about how to use the client listener and server listener
    FrankHi,
    Thanks a lot for your advices, I used the client and server listener
    I used this code on the method call in order to change the selection after key tab pressed, I don't know if it can be easier, but it works.
              if (LOGGER.isDebugEnabled()) {
              LOGGER.debug("START changeSelectedRow");
              RowKeySet oldRowKeySet = myTable.getSelectedRowKeys(); // get oldRowKeySet
              if (oldRowKeySet == null) {
                   if (LOGGER.isDebugEnabled()) {
                        LOGGER.debug("oldRowKeySet is null");
                   return;
              RowKeySetImpl newRowKeySet = new RowKeySetImpl(); // The new RowKeySet use to change the selectedRow
              DCIteratorBinding bindingIterator = ADFUtils.findIterator(MY_ITERATOR);
              bindingIterator.setRangeSize(-1);
              // set the new index of the current row.
              int index = bindingIterator.getCurrentRowIndexInRange();
              if (index < bindingIterator.getAllRowsInRange().length - 1) {
                   index++;
              bindingIterator.setCurrentRowIndexInRange(index);
              // get the current row after changed the index
              Row currentRow = bindingIterator.getCurrentRow();
              if (currentRow != null) {
                   ArrayList nextLst = new ArrayList(1);
                   nextLst.add(currentRow.getKey());
                   newRowKeySet.add(nextLst);
                   // set the new selectedRow
                   myTable.setSelectedRowKeys(newRowKeySet);
                   SelectionEvent selectionEvent = new SelectionEvent(oldRowKeySet, newRowKeySet, myTable);
                   selectionEvent.queue();
                   AdfFacesContext.getCurrentInstance().addPartialTarget(myTable);
              if (LOGGER.isDebugEnabled()) {
                   LOGGER.debug("END changeSelectedRow");
    Best Regards
    Benjamin

  • How to insert 10 rows at a time in the oracle

    how ti insert r update 10 query at a time in the oracle

    You can do a small test to find it out.
    SQL> set serveroutput on
    SQL> drop table t
      2  /
    Table dropped.
    SQL> drop table s
      2  /
    Table dropped.
    SQL> create table s(no integer, name varchar2(4000))
      2  /
    Table created.
    SQL> create table t(no integer, name varchar2(4000))
      2  /
    Table created.
    SQL> insert into s
      2  select level, rpad('*',4000,'*')
      3    from dual
      4  connect by level <= 10000
      5  /
    10000 rows created.
    SQL> commit
      2  /
    Commit complete.
    SQL> declare
      2     ltime integer;
      3  begin
      4     ltime := dbms_utility.get_time;
      5
      6     for i in (select * from s)
      7     loop
      8             insert into t(no, name) values(i.no,i.name);
      9     end loop;
    10
    11     ltime := dbms_utility.get_time - ltime;
    12
    13     dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
    14     commit;
    15  end;
    16  /
    Exec Time:17.22 Seconds...
    PL/SQL procedure successfully completed.
    SQL> truncate table t
      2  /
    Table truncated.
    SQL> declare
      2     type my_type is table of s%rowtype;
      3     lType my_type;
      4     ltime integer;
      5  begin
      6     ltime := dbms_utility.get_time;
      7
      8     select * bulk collect into lType from s;
      9
    10     forall i in 1..lType.count
    11             insert into t values lType(i);
    12
    13     ltime := dbms_utility.get_time - ltime;
    14
    15     dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
    16
    17     commit;
    18  end;
    19  /
    Exec Time:6.27 Seconds...
    PL/SQL procedure successfully completed.
    SQL> truncate table t
      2  /
    Table truncated.
    SQL> declare
      2     ltime integer;
      3  begin
      4     ltime := dbms_utility.get_time;
      5
      6     insert into t select * from s;
      7
      8     ltime := dbms_utility.get_time - ltime;
      9
    10     dbms_output.put_line('Exec Time:'||ltime/100||' Seconds...');
    11
    12     commit;
    13  end;
    14  /
    Exec Time:3.26 Seconds...
    PL/SQL procedure successfully completed.Thanks,
    Karthick.

  • How to hide a row in BI Publisher using conditional formatting

    Hi,
    I am using BI Publisher 11.1.1.5.0.
    I need to hide entire row based on the condition (if sal > 0 then hide entire row), please can you help on how  can I achieve this?
    thanks

    Hi,
    I've found the solution in
    Report Designer's Guide for Oracle Business Intelligence Publisher Release 11g (11.1.1) Part No. E13881-02 - Section Conditional Formatting.
    thanks

Maybe you are looking for