Extra non bound Row in a data table

We have the following question, which we believe is possible with creator:
In a data table, whose data source is a database table or Object List or EJB, is it possible to have the fisrt row (the row that comes after the column titles row) not bound to any data and used for another purpose? We want to use this row as a Query By Example (QBE) row, so that an application user may enter arbitrary search criteria into textbox columns in this row, column by column. When they click on a find button, data that meets the criteria is returned. We want something similar to the following html dislpay:
<table width="401" border="1">
<tr>
<th scope="col">Employee ID </th>
<th scope="col">First Name </th>
<th scope="col">Last Name </th>
</tr>
<tr>
<td>Text Box here for ID criteria </td>
<td>Text box here for First Name Criteria </td>
<td>Text Box here for last name criteria </td>
</tr>
<tr>
<td>101</td>
<td>David</td>
<td>Keen</td>
</tr>
<tr>
<td>102</td>
<td>Mary </td>
<td>Linda</td>
</tr>
<tr>
<td>103</td>
<td>Kevin</td>
<td>Lees</td>
</tr>
<tr>
<td>104</td>
<td>James </td>
<td>Bent</td>
</tr>
</table>
One possibility that we have considered is to dynamically create a table, using the following code. But this is not working as expected. First, the QBE row is not rendered( there is a message that says No Data Found). And second, the pagination controls do not display.
public HtmlPanelGrid getGridPanel1() {
//return gridPanel1;
Table dynamicTable = createTable();
gridPanel1.getChildren().add(dynamicTable);
return gridPanel1;
private Table createTable(){
Table table = new Table();
table.setId("table1");
table.setTitle("Dynamically Created Table");
table.setPaginateButton(true);
table.setPaginationControls(true);
// Create the Table Row group dynamically
createRowGroupQBE(table);
createRowGroupData(table);
return table;
private TableRowGroup createRowGroupQBE(Table tbe)
TableRowGroup rowGroup = new TableRowGroup();
rowGroup.setId("rowGroup1");
//rowGroup.setPaginated(false);
//rowGroup.setSourceVar("currentRow");
//rowGroup.setValueBinding("sourceData", getApplication());
//rowGroup.setRows(5);
//rowGroup.setRows(1);
// Add the table row group to the table as a child
tbe.getChildren().add(rowGroup);
// Create the first table Column
TableColumn tableColumn1 = new TableColumn();
tableColumn1.setId("tableColumn1");
tableColumn1.setHeaderText("Data Item");
// Add the first table Column to the table row group
rowGroup.getChildren().add(tableColumn1);
TextField staticText1 = new TextField();
// Add the static text to the table column1
tableColumn1.getChildren().add(staticText1);
// Create the first table Column
TableColumn tableColumn2 = new TableColumn();
tableColumn2.setId("tableColumn2");
tableColumn2.setHeaderText("Data Item Name");
// Add the first table Column to the table row group
rowGroup.getChildren().add(tableColumn2);
StaticText staticText2 = new StaticText();
// Add the static text to the table column2
tableColumn2.getChildren().add(staticText2);
// Create the first table Column
TableColumn tableColumn3 = new TableColumn();
tableColumn3.setId("tableColumn3");
tableColumn3.setHeaderText("System Code");
// Add the first table Column to the table row group
rowGroup.getChildren().add(tableColumn3);
StaticText staticText3 = new StaticText();
// Add the static text to the table column3
tableColumn3.getChildren().add(staticText3);
// Create the first table Column
TableColumn tableColumn4 = new TableColumn();
tableColumn4.setId("tableColumn4");
tableColumn4.setHeaderText("Description");
// Add the first table Column to the table row group
rowGroup.getChildren().add(tableColumn4);
StaticText staticText4 = new StaticText();
// Add the static text to the table column4
tableColumn4.getChildren().add(staticText4);
// Create the first table Column
TableColumn tableColumn5 = new TableColumn();
tableColumn5.setId("tableColumn5");
tableColumn5.setHeaderText("Column Heading");
// Add the first table Column to the table row group
rowGroup.getChildren().add(tableColumn5);
StaticText staticText5 = new StaticText();
// Add the static text to the table column5
tableColumn5.getChildren().add(staticText5);
return rowGroup;
private TableRowGroup createRowGroupData(Table tbe)
// Create the Table Row group dynamically
TableRowGroup dataRowGroup = new TableRowGroup();
dataRowGroup.setId("rowGroup2");
dataRowGroup.setSourceVar("currentRow");
dataRowGroup.setValueBinding("sourceData", getApplication().createValueBinding("#{newPage.dictionarySessionRemoteGetAllDictionaries1}"));
//dataRowGroup.setPaginated(true);
dataRowGroup.setRows(5);
// Add the table row group to the table as a child
tbe.getChildren().add(dataRowGroup);
// Create the first table Column
TableColumn dataTableColumn1 = new TableColumn();
dataTableColumn1.setId("dataTableColumn1");
// Add the first table Column to the table row group
dataRowGroup.getChildren().add(dataTableColumn1);
StaticText dataStaticText1 = new StaticText();
dataStaticText1.setValueBinding("text", getApplication().createValueBinding ("#{currentRow.value['dataItem']}"));
// Add the static text to the table column1
dataTableColumn1.getChildren().add(dataStaticText1);
// Create the first table Column
TableColumn dataTableColumn2 = new TableColumn();
dataTableColumn2.setId("dataTableColumn2");
// Add the first table Column to the table row group
dataRowGroup.getChildren().add(dataTableColumn2);
StaticText dataStaticText2 = new StaticText();
dataStaticText2.setValueBinding("text", getApplication().createValueBinding ("#{currentRow.value['dataItemName']}"));
// Add the static text to the table column2
dataTableColumn2.getChildren().add(dataStaticText2);
// Create the first table Column
TableColumn dataTableColumn3 = new TableColumn();
dataTableColumn3.setId("dataTableColumn3");
// Add the first table Column to the table row group
dataRowGroup.getChildren().add(dataTableColumn3);
StaticText dataStaticText3 = new StaticText();
dataStaticText3.setValueBinding("text", getApplication().createValueBinding ("#{currentRow.value['systemCode']}"));
// Add the static text to the table column3
dataTableColumn3.getChildren().add(dataStaticText3);
// Create the first table Column
TableColumn dataTableColumn4 = new TableColumn();
dataTableColumn4.setId("dataTableColumn4");
// Add the first table Column to the table row group
dataRowGroup.getChildren().add(dataTableColumn4);
StaticText dataStaticText4 = new StaticText();
dataStaticText4.setValueBinding("text", getApplication().createValueBinding ("#{currentRow.value['description']}"));
// Add the static text to the table column4
dataTableColumn4.getChildren().add(dataStaticText4);
// Create the first table Column
TableColumn dataTableColumn5 = new TableColumn();
dataTableColumn5.setId("dataTableColumn5");
// Add the first table Column to the table row group
dataRowGroup.getChildren().add(dataTableColumn5);
StaticText dataStaticText5 = new StaticText();
dataStaticText5.setValueBinding("text", getApplication().createValueBinding ("#{currentRow.value['columnHeading1']}"));
// Add the static text to the table column5
dataTableColumn5.getChildren().add(dataStaticText5);
return dataRowGroup;
Any ideas?

Here is a suggestion. I have not tried it myself
Add another method
    public void setSelected(RowKey rowkey, Object object) {
        if (rowKey != null) {
            tablePhaseListener.setSelected(rowKey, object);
    }

Similar Messages

  • How to set different colors for even odd rows in a data table

    hi,
    In my project i hav a data table. i am using jsf. i want the rows of the data table different colors for even, odd rows. can i do it just setting the row class property ? or there should be there some other way? please help.
    sailajoy

    Hope this helps
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-loose.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title></title>
    <style type='text/css'>
    .scrollContent {
    height:100px;
    overflow-x:hidden;
    overflow-y:auto;
    .scrollContent tr {
    height: auto;
    white-space: nowrap;
    .scrollContent tr td:last-child {
    padding-right: 20px;
    .fixedHeader tr {
    position: relative;
    height: auto;
    top: expression( this.parentNode.parentNode.parentNode.scrollTop + 'px' );
    div.TableContainer {
    border: 1px solid #7DA87D;
    .headerFormat {
    background-color: white;
    color: #C8D7B5;
    margin: 3px;
    padding: 1px;
    white-space: nowrap;
    font-family: Helvetica;
    font-size: 16px;
    text-decoration: none;
    font-weight: bold;
    .headerFormat tr td {
    border: 1px solid #C8D7B5;
    background-color: #666633;
    .bodyFormat tr td {
         color: #000000;
         margin: 3px;
         padding: 1px;
         border: 0px none;
         font-family: Helvetica;
         font-size: 12px;
    .alternateRow {
    background-color: #C8D7B5;
    </style>
    <style type="text/css">
    div.TableContainer {
    height: 121px;
    overflow-x:hidden;
    overflow-y:auto;
    </style>
    </head>
    <body>
    <table cellpadding="0" cellspacing="0" border="0"><tr><td><div id="TableContainer" class="TableContainer" style="height:230px;">
    <table class="scrollTable">
    <thead class="fixedHeader headerFormat">
    <tr class="title">
    <td title="Sort" align="center"><b>NAME</b> </td>
    <td title="Sort" align="center"><b>Amt</b> </td>
    <td title="Sort" align="center"><b>Lvl</b> </td>
    <td title="Sort" align="center"><b>Rank</b> </td>
    <td title="Sort" align="center"><b>Position</b> </td>
    <td title="Sort" align="center"><b>Date</b></td>
    </tr>
    </thead>
    <tbody class="scrollContent bodyFormat" style="height:200px;">
    <tr class="alternateRow">
    <td>Maha</td>
    <td>
    <input type="text" name="textfield" size="7" />
    </td>
    <td align="right"><input type="text" name="textfield2" size="7" /></td>
    <td align="right"><input type="text" name="textfield3" size="7" /></td>
    <td><input type="text" name="textfield4" size="7" /></td>
    <td align="right"><input type="text" name="textfield5" size="7" /></td>
    </tr>
    <tr>
    <td>Thrawl</td>
    <td align="right">$9,550</td>
    <td align="right">159</td>
    <td align="right">100%</td>
    <td>Co-Owner</td>
    <td align="right">11/07/2003</td>
    </tr>
    <tr class="alternateRow">
    <td>Marhanen</td>
    <td align="right">$223.04</td>
    <td align="right">83</td>
    <td align="right">99%</td>
    <td>Banker</td>
    <td align="right">06/27/2006</td>
    </tr>
    <tr>
    <td>Peter</td>
    <td align="right">$121</td>
    <td align="right">567</td>
    <td align="right">23423%</td>
    <td>FishHead</td>
    <td align="right">06/06/2006</td>
    </tr>
    <tr class="alternateRow">
    <td>Jones</td>
    <td align="right">$15</td>
    <td align="right">11</td>
    <td align="right">15%</td>
    <td>Bubba</td>
    <td align="right">10/27/2005</td>
    </tr>
    <tr>
    <td>Supa-De-Dupa</td>
    <td align="right">$145</td>
    <td align="right">91</td>
    <td align="right">32%</td>
    <td>momma</td>
    <td align="right">12/15/1996</td>
    </tr>
    <tr class="alternateRow">
    <td>ClickClock</td>
    <td align="right">$1,213</td>
    <td align="right">23</td>
    <td align="right">1%</td>
    <td>Dada</td>
    <td align="right">1/30/1998</td>
    </tr>
    <tr>
    <td>Mrs. Robinson</td>
    <td align="right">$99</td>
    <td align="right">99</td>
    <td align="right">99%</td>
    <td>Wife</td>
    <td align="right">07/04/1963</td>
    </tr>
    <tr class="alternateRow">
    <td>Maha</td>
    <td align="right">$19,923.19</td>
    <td align="right">100</td>
    <td align="right">100%</td>
    <td>Owner</td>
    <td align="right">01/02/2001</td>
    </tr>
    <tr>
    <td>Thrawl</td>
    <td align="right">$9,550</td>
    <td align="right">159</td>
    <td align="right">100%</td>
    <td>Co-Owner</td>
    <td align="right">11/07/2003</td>
    </tr>
    <tr class="alternateRow">
    <td>Marhanen</td>
    <td align="right">$223.04</td>
    <td align="right">83</td>
    <td align="right">59%</td>
    <td>Banker</td>
    <td align="right">06/27/2006</td>
    </tr>
    <tr>
    <td>Peter</td>
    <td align="right">$121</td>
    <td align="right">567</td>
    <td align="right">534.23%</td>
    <td>FishHead</td>
    <td align="right">06/06/2006</td>
    </tr>
    <tr class="alternateRow">
    <td>Jones</td>
    <td align="right">$15</td>
    <td align="right">11</td>
    <td align="right">15%</td>
    <td>Bubba</td>
    <td align="right">10/27/2005</td>
    </tr>
    <tr>
    <td>Supa-De-Dupa</td>
    <td align="right">$145</td>
    <td align="right">91</td>
    <td align="right">42%</td>
    <td>momma</td>
    <td align="right">12/15/1996</td>
    </tr>
    <tr class="alternateRow">
    <td>ClickClock</td>
    <td align="right">$1,213</td>
    <td align="right">23</td>
    <td align="right">2%</td>
    <td>Dada</td>
    <td align="right">1/30/1998</td>
    </tr>
    <tr>
    <td>Mrs. Robinson</td>
    <td align="right">$99</td>
    <td align="right">99</td>
    <td align="right">(-10.42%)</td>
    <td>Wife</td>
    <td align="right">07/04/1963</td>
    </tr>
    <tr class="alternateRow">
    <td>Maha</td>
    <td align="right">-$19,923.19</td>
    <td align="right">100</td>
    <td align="right">(-10.01%)</td>
    <td>Owner</td>
    <td align="right">01/02/2001</td>
    </tr>
    <tr >
    <td>Thrawl</td>
    <td align="right">$9,550</td>
    <td align="right">159</td>
    <td align="right">-10.20%</td>
    <td>Co-Owner</td>
    <td align="right">11/07/2003</td>
    </tr>
    <tr class="alternateRow" >
    <td><strong>TOTAL</strong>:</td>
    <td align="right"><strong>999999</strong></td>
    <td align="right"><strong>9999999</strong></td>
    <td align="right"><strong>99</strong></td>
    <td > </td>
    <td align="right"> </td>
    </tr>
    </tbody>
    </table>
    </div></td></tr></table>
    </body>
    </html>

  • Abap logic not fetching multiple rows from master data table

    Hi
    I just noticed that my logic is fetching only 1 row from master data table.
    ProdHier table
    PRODHIERACHY            Level
    1000                                  1
    1000011000                      2
    10000110003333              3
    10000110004444              3
    '10000110005555              3*
    logic only fetches one row of level 3, I would like to fetch all level 3 rows.
    DATA: ITAB type table of /BI0/PPROD_HIER,
          wa like line of ITAB.
    Select * from /BI0/PPROD_HIER INTO wa where /BIC/ZPRODHTAS = 3.
    IF wa-PROD_HIER(10) = SOURCE_FIELDS-PRODH2.
         RESULT = wa-PROD_HIER.
         ELSEIF wa-PROD_HIER(5) = SOURCE_FIELDS-PRODH1.
         RESULT = wa-PROD_HIER.
    ENDIF.
    ENDSELECT.
    thanks

    Hi,,
    I have implemented the logic in end routine and it still reads only the first row.
    I am loading only PRODH1 and PROD2 but now I want to get all values of PRODH3 from the master data table.
    The first 5 values are PRODH1 and first 10 values belongs to PRODH2.
    Whenever PRODH2 = 1000011000 in source I should get the following values
    10000110001110
    10000110001120
    10000110001130
    I have multiple rows of 1000011000 so my result should be
      1000011000               10000110001110
      1000011000               10000110001120
      1000011000               10000110001130
    DATA: ITAB type table of /BI0/PPROD_HIER,
    wa like line of ITAB.
    data rp type _ty_s_TG_1.
    Select  * from /BI0/PPROD_HIER INTO table itab where /BIC/ZPRODHTAS = 3.
    LOOP AT RESULT_PACKAGE INTO rp.
    read table itab into wa with key PROD_HIER(5) = rp-PRODH1.
    IF sy-subrc EQ 0.
         rp-PRODH3 = wa-PROD_HIER.
         ELSE.
    read table itab into wa with key PROD_HIER(10) = rp-PRODH2.
    IF sy-subrc EQ 0.
         rp-PRODH3 = wa-PROD_HIER.
    ENDIF.
    ENDIF.
    MODIFY RESULT_PACKAGE FROM rp.
    ENDLOOP.
    Edited by: Bhat Vaidya on Sep 10, 2010 11:27 AM
    Edited by: Bhat Vaidya on Sep 10, 2010 11:37 AM

  • How to get row index of data table in the while ValueChangeListener fired?

    Hi,
    i have a data table in my page, which contains various components like inputText, selectOneChoice in each row.
    i am invoking a method ValueChangeListener attribute of the selectOneChoice component. I have given the autoSubmit=true for this component.
    <tr:selectOneChoice id="ratingModelType"
    value="#{childRatio.ratingModelType}" binding="#{pageManager.form.bindRatioType}"
    valueChangeListener="#{pageManager.form.onRatingModelTypeChange}" autoSubmit="true"
    contentStyle="width:150px" required="#{!childRatio.disableChildRatioRatingModelType}"
    requiredMessageDetail="#{appBundle['error.ratingModelTypeShouldNotBeEmpty']}">
    <f:selectItems value="#{pageManager.catalog['Rating Model Type']}" />
    <tr:selectOneChoice>In that method i want to fetch the map(with all updated values) relevant to the currently modified row of the table.
    Since i am not using the selectionListener or any radio buttons in the page i am not able to get the row index of the table.
    somebody please tell me how to get the row index of the table, while ValueChangeListener fired?
    Thanks in advance.
    Subbu

    Hi niki,
    Thank you so much. With your suggestion i got the result exactly what i want.
    thanks again.
    --subbu                                                                                                                                                                                                                               

  • What happen if I delete the Blank row in Master Data Table

    This is what happened:
    I have an InfoObject Item has only the key and description. I wrote a program to delete all Master Data in Item.
    DELETE FROM /bic/TItem.
    DELETE FROM /bic/SItem.
    COMMIT WORK.
    I still able to load Master Data to Item succussfully without a blank row. But I remember 1 blank row always gets inserted to the table, right? In my case, it's not ture. I would like to know why and what's going to affect if there is no blank row in the table?
    Thanks.

    Hi,
    I guess there should be no impact but why do you want to delete the row. I guess at some point the system would still insert a blank record.
    Bye
    Dinesh

  • How to display the contents of a 2D array which is bound to a data table

    Hi ,
    I have a backing bean which returns me a 2D array of Strings . Now I have bound this to a data table .
    Something like this
    <h:dataTable styleClass="dataTable" id="dstable" var="dbArray" value="#{pc_MyApp.dbProperties}">
    Now when I say dbArray[i] it will give me the ith column of the current row. I want to display these dbArray[i] contents in a proper table format.
    What I am doing at present is something like this
    <h:dataTable styleClass="dataTable" id="dstable" var="dbArray" value="#{pc_MyApp.dbProperties}">
    <h:column id=id1>
    <h:facet name="header">
    <h:outputText value="Heading"/>
    </h:facet>
    <h:outputText id="text1" value="#{dbArray[0]}" ></h:outputText>
    <h:outputText id="text1" value="#{dbArray[1]}" ></h:outputText>
    <h:outputText id="text1" value="#{dbArray[2]}" ></h:outputText>
    </h:column>
    </h:dataTable>
    This is able to display the contents of 2D array on the screen, but everything for the current row comes in just a single column...I want each column value to be in diff column and it should look like a table.
    Can anyone please guide me in this respect..
    Thanks
    Mahajan

    Does doArray always have at most three elements?
    If so, you can specify three <h:column>s each displays doArray.

  • How to update a single row of data table

    How we can update a single row of the data table by clicking the button in the same row.
    Thanks in Advance.

    Hi!
    What do You mean 'update'? Get fresh data from DB or change data and commit it in DB?
    If commit, try to read here:
    http://developers.sun.com/jscreator/learning/tutorials/2/inserts_updates_deletes.html
    Thanks,
    Roman.

  • Row action event on data table does not occur when rows added dynamically

    Row action event on data table does not occur (only refreshes the page) when the rows in the data table are added dynamically at run time using button click and java bean.
    please tell me a way to catch the row click event when adding rows dynamically to data table. i m using RAD 6.0 to develop Faces jsp pages.
    thanks
    amit

    i got the answer

  • HTML Data Table with cell-level inline messages?

    Hi all.
    I'm not suprised by this, but I am wondering if anyone has figured out a slick/elegant way around the "problem"
    Basically, the problem I want to solve is:
    how to get corresponding validation error messages to show up in the data table cell that contains the (editiable) ui component representing the "offending" value?
    The naive first approach would be simply to place an inline message component just before or after the corresponding data table column's row value presentation component.
    But obviously, this won't work, primarily because the inline message component id will not be unique (does not pick up the currentRow to make it unique) asd well as due to the issue of binding the inlineMessage component's "for" attribute to the correct row (as well as column).
    So, the naive first approach results in a thrown exception:
    javax.servlet.ServletException: Duplicate component id: 'form1:personDataTable:firstNameValidationInlineMessage'
    Now, I know I could add "virtual" columns to my data table to hold validation errors so that they correspond to the correct row/columns and I know I can bind the rendered attribute, style etc, for corresponding presentation elements, but then I've basically side-stepped the whole faces message functionality built into the JSF framework.
    Also, if I have to use "virtual" columns, then I've complicated life for myself, since I ordinarily want to bind the data table to a list of bean instances (i.e. we are using hibernate persistence) or even a row set (difficulty setting a column value that is not updateable in data source, i.e. corresponds to no table/column and maybe involves dynamically adding "virtual" column to data cache?).
    Now, I know I can place a message list on the page instead (this is currently what I am doing), and I know I can change the application so that I provide a separate *single row" edit page, both of which provide a semi-adequate alternative.
    I like the first alternative (the one I'm using), because in-place editing of data table rows is so much more compact and elegant, both in terms of presentation and coding.
    Using this first alternative, I am currently adding to the validation error messages the currentRow attrubute so that users can see it an trace back to the corresponding row in the data table to correct the data entry.
    However, everyone, users, project drivers and developers (including myself), are grumbling a bit over such a "hackish" approach.
    Any thoughts? Am I missing something obvious?

    Well I'll be damned!
    What's done in the sample app is, of course, the intuitively obvious choice and is exactly what I started out trying to do the first time round.
    But as I mentioned before, when I first tried it (yes: I'm pretty sure I set the "for" attribute on the inlineMessage components), I got the non-unique component id exception for the inlineMessage component(s) after adding the second (but not the first) row to the page.
    Anyway, after dragging my inlineMessages to the exact same position as those in the AppModel example, now things work fine (except I think I'd like a line break before the message and to change the row/column styles so the values and messages line up properly...the look is rather ugly in the AppModel example when there are validation messages displayed).
    Not sure, but I'm thinking maybe there was an issue with where the inline message markup was placed, my first time through, relative to the data table value bound component and the column header facet?
    I was using the application view drag 'n drop feature the first time round and dragged the inlineMessage component to the spot just below the data table value bound component and hence just above the column header facet. In the AppModel example, OTOH, the inline messages are placed just after the column header facet.
    Of course, I will now try to duplicate the original exception.
    If I can (and it is an issue with placement), I will post back some sort of bug report or RFE. Otherwise, I'll post back declaring what a bone head I've been...;-)
    Anyway, thanks for the quick response, v.
    Campbell

  • Using Highlight for columns in data tables

    Hi, I'm using the "Highlight" function of SpryEffects in
    combination with the sorting features. My HTML structure is a
    simple data table, with a repeating region on the table row, so it
    pulls in as many rows there are pieces in the attached XML file.
    When I sort by one of the column headers at the top, I want to
    highlight that whole column, so users can see what they're sorting
    by. I'm able to get the first row of the data table highlighted,
    but none of the following rows work. I'm pretty sure the problem is
    that the highlight function only works when you use an id to define
    the element that you want highlighted. If it's in a repeating row,
    it sees many ids on the page, and only applies the highlight to the
    first one. I want to change the id to a class, so I can put
    multiple ones on the page and have it work, but I can't see how to
    do that in the SpryEffects.js file.
    Can anyone tell me if it's possible to do this? Thanks.
    Here's the portion of the .js file:
    function setupHighlight(element, effect)
    Spry.Effect.setStyleProp(element, 'background-image',
    'none');
    function finishHighlight(element, effect)
    Spry.Effect.setStyleProp(element, 'background-image',
    effect.options.restoreBackgroundImage);
    if (effect.direction == Spry.forwards)
    Spry.Effect.setStyleProp(element, 'background-color',
    effect.options.restoreColor);
    Spry.Effect.Highlight = function (element, options)
    var durationInMilliseconds = 1000;
    var toColor = "#ffffff";
    var doToggle = false;
    var kindOfTransition = Spry.sinusoidalTransition;
    var setupCallback = setupHighlight;
    var finishCallback = finishHighlight;
    var element = Spry.Effect.getElement(element);
    var fromColor = Spry.Effect.getStyleProp(element,
    "background-color");
    var restoreColor = fromColor;
    if (fromColor == "transparent") fromColor = "#ffff99";
    var optionFrom = options ? options.from : '#ffff00';
    var optionTo = options ? options.to : '#0000ff';
    if (options)
    if (options.duration != null) durationInMilliseconds =
    options.duration;
    if (options.from != null) fromColor = options.from;
    if (options.to != null) toColor = options.to;
    if (options.restoreColor) restoreColor =
    options.restoreColor;
    if (options.toggle != null) doToggle = options.toggle;
    if (options.transition != null) kindOfTransition =
    options.transition;
    if (options.setup != null) setupCallback = options.setup;
    if (options.finish != null) finishCallback = options.finish;
    var restoreBackgroundImage =
    Spry.Effect.getStyleProp(element, 'background-image');
    options = {duration: durationInMilliseconds, toggle:
    doToggle, transition: kindOfTransition, setup: setupCallback,
    finish: finishCallback, restoreColor: restoreColor,
    restoreBackgroundImage: restoreBackgroundImage, from: optionFrom,
    to: optionTo};
    var highlightEffect = new Spry.Effect.Color(element,
    fromColor, toColor, options);
    highlightEffect.name = 'Highlight';
    var registeredEffect =
    SpryRegistry.getRegisteredEffect(element, highlightEffect);
    registeredEffect.start();
    return registeredEffect;

    Hi Philip, Thanks a lot for puting this enhancement request through.
    Just downloaded the latest Patch upgrading to v 3.1.2-704 and confirmed that this functionality is not available yet.
    Keeping your experience in mind what kind of expectation to you have for the approval and realization of your request?
    Most likely this will take a couple of month – right? Or is there a beta version of 3.2 already available we could use.
    Thanks a lot. Cheers Stefan

  • Filter - data table

    Can I use Xcelsius just to show on an organised way a part of a table with filters?
    Ex.:
    Type     Team     Week     Game.Nr.     Date     Hour     Location     Homa     Gast
    BvV     CadJL     34     80226     23/08/08     10:00     A     BBC Kangoeroes Willebr - A     Basket Tongeren
    BvV     JunJL     34     80124     23/08/08     15:00     WEG     BBC Helios Zottegem     BBC Kangoeroes Willebr - A
    Comp     JunJL     35     13108092     30/08/08     11:00     A     BBC Kangoeroes Willebr - A     BBC Schelle - A
    Comp     CadJL     35     13120092     30/08/08     13:00     A     BBC Kangoeroes Willebr     BBC Geel
    Comp     CadPM     35     6101125     30/08/08     10:45     WEG     Londerzeelse Dunkers - B     Dames Willebroek
    Comp     JunJL     36     13108103     6/09/08     11:00     A     BBC Kangoeroes Willebr - A     BBC Falco Gent - A
    With the filter I want the user to select a Team and/or week  The result should be a table only matching one or both criteria

    Hi Wim,
    As you have discovered, my experience also has been that the filter selector only selects a single row.  This is also consistent with the animated help for this component.
    The following "workaround" to the limitation of the Filter Selector component will meet your requirement:
    1) Place a Combo Box component on the canvas for each of the filter criteria you require;
    2) Link the Labels property of each combo box to a cell range that contains a list of the unique values;
    3) Set the Data Insertion Type of each Combo Box to "Label" and bind to a Destination cell to receive the selected item;
    4) Define a formula cell to act as the filter key, which is a concatenation of all of the values of the Destination cells from step 3;
    5) Insert a new column at the beginning of your data table to act as the filter key for each row in the table.  Each row in this column should contain a formula that concatenates each of the cells that correspond to the columns you want to filter by;
    6) Place an additional Combo Box on the canvas.  Set the Labels property to the range of cells in the filter key column defined in step 5.  Set the Data Insertion Type to "Filtered Rows".  Set the Source Data range to all of the cells in your table.  Set the Destination Data to an area in the spreadsheet that will receive the filtered subset of rows from your original data table.  Set the Selected Item property of this combo box to reference the filter key formula cell defined in step 4;
    7) Place a spreadsheet table component on the canvas and link the Display Data property to the Destination cell range defined in step 6.
    Once you have the layout as desired, hide the Combo Box defined in Step 6 behind the spreadsheet table defined in step 7 so that the end user cannot interact with it.  This Combo Box is used as an indirect method of dynamically filtering the rows from your data table.
    One other point to keep in mind:  Xcelsius does not handle large volumes of data very well.  Depending on the number of columns in your 500 row table, you may experience performance issues, or Xcelsius may stop responding altogether.
    The above approach may seem convoluted but it achieves the desired result.
    Let me know if you need any clarification of the above technique.
    Regards,
    Mustafa.

  • Updated property of rowset is set for data table if I use convertors

    Hi,
    I use data table for update database table. What I use is sale tax table of Pointbase. I use convertors for date effect and tax rate.
    I just change 1 row of data table but Jcreator finds all row are updated. This is a waste of resource and performance. Here is the code (I copied from clip).
    public String saveButton_action() {
    // User event code here...
    log("OnePage: update_action()");
    // BYHAND - Count up the rows with updates (optional)
    int count = 0;
    Iterator keys = dataTable1Model.getDataCache().iterator();
    while (keys.hasNext()) {
    Integer key = (Integer) keys.next();
    com.sun.jsfcl.data.DataCache.Row row = dataTable1Model.getDataCache().get(key.intValue());
    if (row.isUpdated()) {
    count++;
    // BYHAND - Perform the actual update transaction and report results
    try {
    dataTable1Model.commit();
    info("Total rows updated: " + count);
    } catch (Exception e) {
    log("OnePage: Update commit exception", e);
    error("OnePage: Update commit exception: " + e);
    // BYHAND - Re-execute the query to pick up new results
    try {
    dataTable1Model.execute();
    } catch (SQLException e) {
    log("OnePage: Update reselect exception", e);
    error("OnePage: Update reselect exception: " + e);
    return null;
    My guess is jCreator compares the text from data table and rowset's cache (???). as I display date and rate in formats I need.
    My data table displays 10 rows so each time I change 1 row jCreator updates 10 rows of the data table.
    Need clarification on this.
    Cheers.

    Hi Hung,
    I received your email and was unable to reproduce using
    a new project.
    I want to reproduce this ASAP.
    Is this the same project you sent me previously?
    If not, then could you please email it to me again.
    Thank you
    John
    JSC QA

  • BIG CONCERN for data table columns bound to property.

    Here the issue.
    I have a data table with many columns of which:
    1/ first group bound directly to database table columns.
    2/ Second group bound indirectly to database table columns through properties (I need some extra formatting depends on the data of the database table�s columns).
    When I display the page the first time it appears correct but when I go back to the page previously displayed the second group columns all get the last value of the bound properties.
    What I guess is:
    - The first group of columns get data from database.
    - The second group of columns just get the value of the properties they were bound , the getXXXXXX method does not get called again because the page was already loaded ?�..So my second group displayed with the wrong data (the last value of property they were bound to).
    BIG ISSUE�.when I redisplay the previous page. For example I am on page 3 when I go back to page 1 or page 2 they display the wrong data�
    Is it the way it supposed to work ? If so how to force the getXXXXXX method called again to get the right property�s value not the last property�s value?
    Thanks.

    Here is what I am trying to do (this is a real application not with Pointbase bundled with jCreator).
    I want to display a iSeries (AS/400) table in a data table but some columns I need to format suitably:
    For example: I have a few date columns in my database table are numeric fields not date fields so if its value is zero I don�t need to display. What I do to display in data table is:
    1/ To bind its value to a property let�s call it enteredDate of type java.sql.date
    public Date getEnteredDate() {
    Object o = getValue("#{dealDetaiSWAPl.dealRowSet1.currentRow['$SEND']}");
    return getMyDateFromDdMmYy(o); this method is to convert $SEND from numeric to Date field.
    2/ To bind rendered attribute to enteredDateRendered
    public boolean isEnteredDateRendered() {
    Object o = getValue("#{dealDetaiSWAPl.dealRowSet1.currentRow['$SEND']}");
    return dateRendered(o);
    public boolean isDateRendered(Object o) { /* This method I reuse elsewhere */
    int date = java.lang.Integer.parseInt(o.toString());
    if (date == 0)
    return false;
    else
    return true;
    When I display page 1 : it looks correct.
    Ex: ��date1�..
    ��date2�..
    ��date3�..
    Display page 2: it looks correct.
    Ex: ��date4�..
    ��date5�..
    ��date6�..
    Go back to page 1: all columns date have the same value of the first row
    Ex: ��date1�..
    ��date1�..
    ��date1�..
    I did not change anything in page navigation method.
    By the way I notice that each time I go to table layout screen JSC deletes all components I added in the navigation gridPanel. So if I change something in them I have to restart the whole thing again.
    Can you give me your email I will send you screenshots of my application.
    Thanks.

  • Insert new row in Data Table

    Hi All,
    Based on "Insert, Update and Delete" tutorial it's easy to perform insert by addidng new row in forms.
    Then I tried to do the myRowSet.moveToInsertRow() having a the RowSet bound to a Data Table and no new record appears :( !
    Any workaround ?

    My guess is that you are not refreshing the datatable - you must call execute on the datatable model object again.
    Unless you are expecting a new "inserted" empty row to be created on the datatable itself when you call moveToInsertRow - the JSF standard datatable doesn't support that operation. See the AppModel sample application to see another option to handle that scenario.
    v

  • How to get the row count of a Table DATA?

    Hi,
      In my Adobe form layout, I have a Table node which is bound to an internal table. Now at runtime, I want to determine the number of rows that the internal table has, i.e the row count of the DATA node of the Table. How will I be able to determine the no. of rows of the internal table at runtime using Javascript? I am not being able to find any suitable answer in this forum. Please suggest. Thanks in advance.

    Hi,
    If you bind the interactive form table to the internal table and specify some properties, the table will vary its row size according to the number of data available in the internal table.
    You have to wrap the table in a sub form,  check 'allow page break with contents' and property 'flowed'.
    the table will automatically increase its row size...
    Is this the reason for which you wanted for the row count..?
    If so, this will help you..
    Regards.
    Surya

Maybe you are looking for