BC4J, row tag, dynamically setting the action

I have created a DataPage in my BC4J app. It is an Edit Form which creates for me two JSP pages - SitesView_Edit.jsp and SitesView_EditSubmit.jsp. I have modified the Edit page to send through a parameter holding a calue of either "Update" or "Delete" depending on the action chosen by the user.
The Row data tag in the Submit page looks something like this:
<jbo:Row id="myrow" datasource="ds" rowkeyparam="MyRowKey" action="Update" >
I want to change it to use the parameter passed in as the action attribute. Following the example in the help file, I define a local variable in Java as dbAction, put the parameter value inside it and change the row tag as follows:
<jbo:Row id="myrow" datasource="ds" rowkeyparam="MyRowKey" action="<%=dbAction%>" >
Unfortunately, this won't even compile!! It gives me a NullPointerException at compile time. Very strange. Any ideas, anyone??? Is this a bug?
As a workaround I have simply created an if statement and branch to either a hardcoded Update row tag or a hardcoded Delete row tag depending on the parameter value.
Thanks,
Simon Cullen
Western Australia

Since you cant pass in the action as a parameter, you can use a scritplet to decide which statement to execute or use two jsp pages, one for each action.

Similar Messages

  • JSP, BC4J, Row Tag: what is the best way to delete multiple rows?

    Hi all.
    I have a JSP Edit page with three datasources on it. The tables these VO's represent (A, B and C) have a Parent --> Child (1:1 between A and B) relationship and then another Parent --> Child (1:n between B and C) relationship. So the user retrieves one row for Table A, 1 matching row for table B and then between 0 and 6 matching rows for Table C (there cannot be more than 6 because the user can only add these rows from a finite list).
    In my EditSubmit page, I want to perform a RowTag Update action on Tables A and B and they both work no problem. They can't update any rows from Table C but they can add or delete from the list of 0 - 6 rows (the UI is actually a list of 6 checkboxes that they can turn on or off). I figure that the easiest way to handle this rather than keep a list of original values and compare them is simply to delete all existing rows and then add any that the user checked.
    This is causing a problem. I have added a hidden field to the form that picks up the RowKey for each existing row. I can get these RowKeys in the Submit page but cannot find a way of using them with the Delete Row Tag.
    In the end, the only way I could get it to work was the following code (which I stole from the RowTag.java file in jbohtmlsrc.zip):
    if (stakeMailRowKeys != null) {
    for (int counter = 0; counter < stakeMailRowKeys.length; counter++) {
    Key stakeMailKey = new Key(stakeMailRowKeys[counter], stakeMailingRS.getViewObject().getKeyAttributeDefs());
    stakeMailRows = stakeMailingRS.findByKey(stakeMailKey,1);
    stakeMailingRow = stakeMailRows[0];
    // Tell the row to delete itself from the database
    stakeMailingRow.remove();Is there a simpler way to do this (I figure there probably is)? I have another problem with updating the constrained View Objects but I will leave that out of this thread for now.
    TIA,
    Simon

    I don't know if this will help you, but this is what I do:
    I separate the logic into a delete.jsp page. If you can create a View Object that will represent the rows you want to delete and append a where clause to select only the rows you want to delete. Then loop through the view deleting each row. Lets just say you have department and employee tables. and you want to delete employees within a given department. Create a view object that brings back all employees.
    In your delete.jsp find out the department no. by request.getParameter("dept_id");
    then append this to the where clause of your view Object and execute the query:
    vo.setWhereClause(request.getParameter("dept_id");
    vo.executeQuery;
    now loop through and remove the rows:
    while(vo.next){
    vo.getCurrentRow().remove();
    and commit or post changes accordingly.
    There are many ways of doing this action. The easiest way I have found is to create the ViewObjects based on what actions you want to take on them. Make bc4j work for you.
    regards,
    aaron
    null

  • Excel MySQL - To set the action attribute in a  form

    Hi All
    I am working on an application that requires to read data from Excel and update the table in MySQL. My java code works well and does the required. For the user to select an excel file, i have designed a form using JSP. This JSP form gets loaded through Tomcat..When the user browses and selects the required file, he then will click on the update button and the java code then should be executed.
    How can i set the action attribute in form tag to execute java code.
    Following is my code.
    <%@page
    language="java"
    import="javax.servlet.*,javax.servlet.http.*,java.io.*,java.util.*,java.sql.*"
    info="BulkUpdate"
    session="true"
    %>
    <html>
    <head></head>
    <title>Bulk Update Page</title>
    <body bgcolor="#FFcc00">
    <p style="margin-top: 0; margin-bottom: 0">
    <u><b><font color="#800000" size="4"><center>Update Data from Excel Sheet to Database</center></font></b></u></p><br>
    <p style="margin-top: 0; margin-bottom: 0">
    <font face="arial" color="#000080" align="left"><b>Bulk Update on :</b>
    <%
    java.util.Date date = new java.util.Date();
    %></font>
    <%
        out.print( date );
    %>
    <br><br>
    <b><font size="2" face="Arial" color="#000080">This page is used to Select the
    data and configuration file in the browser and update MYSQL database
    </font></b></p>
    <form action="http:\\localhost:8080\itasm\ExcelTest3.java" method="post" enctype="multipart/form-data">
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="98%" id="AutoNumber1">
        <tr>
          <td width="34%" bgcolor="#800000"><b>
      <font face="Arial" color="#FFFF00" size="2">Select the Excel File to update </font>
          </b></td>
          <td width="53%" bgcolor="#800000">
          <p align="left"><input size="34" type="file" name="spreadsheet" /></td>
          <td width="17%" bgcolor="#800000"><input type="submit" value="Update File" /></td>
        </tr><br>
    <tr>
    <td width="34%" bgcolor="#800000"><b>
    <font face="Arial" color="#FFFF00" size="2">Select the corresponding Configuration File</td>
    <td width="17%" bgcolor="#800000"><input size="34" type="file" name="configfile" /></td>
    <td width="53%" bgcolor="#800000"></td>
    </tr></font>
      </table>
    </form>
    <p style="margin-top: 0; margin-bottom: 0">
    </p>
    </body>
    </html>When i execute the above code rather than executing the code, it just displays it in the browser.
    Please help.
    Regards

    Hi Andy!
    I just started to set the tabindex on each item... it wasn't working.. I copied the example you gave.. ha.. you had taxindex --- TAX and I too didn't notice it.. so just want to mention it incase anyone does what I did.. copies without thinking..
    As you said in the previous post it is TABINDEX="n"
    Ha.. its a Monday.. Bill

  • Dynamically setting the vo attribute Update property

    Hi All,
    Can we set the vo attribute update property dynamically.if so please let me know how can we achieve this.
    I have a read only view..But in my process request i need to set the value for that attribute based on some condition.
    How can i achieve this.I cant set at bean level.only row level i need to set.
    Its a dynamically created seeded vo.
    Please help.
    Thanks
    Bharat

    Hi,
    Capture the VO row and then set the value on the view attribute.
    OAViewObject vo = (OAViewObject)am.findViewObject("viewinstance");
    If(vo!=null)
    Row row = (Row)vo.first();
    row.setAttribute("Attribute Name", "Value");
    Thanks,
    Gaurav

  • How to dynamically set the name of the generated PDF file sent by email

    Hello,
    I am using Reports 10g and I managed to send PDF reports by email, specifying the recipient, subject, format etc, using the reports servlet URL.
    But there is one thing that I cannot find a way to do: I want to dynamically set the name of the attached file. It defaults to the name of the RDF file (eg monthly_sales.pdf). I would like it to be something more meaningful (eg monthly_sales_072010.pdf, where 072010 is the month and year passed by parameters).
    Is it possible to do it?
    Thanks
    Luis

    Use System.load(...) instead of System.loadLibrary(...).

  • XSL-FO Report Query / Named Layout - Dynamically set the output filename

    Does anyone know if it is possible to dynamically set the name of the PDF file which is created via FOP?
    Thanks
    Paul

    John
    Thanks for the quick reply, apologies, I should have been more explicit.
    I am calling apache FOP via a report query and a named column layout using xsl-fo to format the PDF report.
    The call is done via a javascript function which determines which report to print and then submits the approproate REQUEST. The request is picked up by conditional branches and calls the PRINT_REPORT
    The PRINT_REPORT names the PDF file as same as the report query name.
    BTW the long term goal is to store the resultant output as a blob back in the database but I can put that off to phase II of the project as I'm not sure that this is possible. Would be nice though!
    Thanks
    Paul

  • How do you dynamically set the flat file name

    Within my process flow I call a mapping. Within this mapping I have a flat file operator (which creates and writes to a .csv file). All working great.
    From this process flow I want to be able to pass a parameter to the mapping (which I can do), and use the value of this parameter as the file name of the .csv file. But I can’t seem to be able to dynamically set the ‘Default physical file name’ to this parameter value within the mapping.
    Does anyone have any ideas?
    Thanks
    Ansel

    Hi Ansel
    Check out the blog entry here;
    http://blogs.oracle.com/warehousebuilder/newsItems/viewFullItem$154
    You can use an expression.
    Cheers
    David

  • Dynamically set the upper limit of a numerical control

    I want to dynamically setting the upper limit of a numerical control. The maximal value that is allowed to input is calculated by the code, so that if the value input by the user exceeds the upperlimit,  a warning comes out and the input value is automaticaly reset to zero.
    I wired the calculated upper-limit to the property node of the numerical control using ''Data Range > Maximum" property, but it does not work as I expected.
    Anyone has suggestion on this? Thanks a lot.

    Can you attach your code?
    Dejun wrote:
    ... but it does not work as I expected.
    I cannot read your mind. What do you expect? What to you see instead?
    Overall, you are in a catch22 scenario if I understand you right. If you set the max of the control to coerce to a certain value and you enter a larger value, it will be coerced to the upper limit and the code does not see the original out-of-range value and you cannot successfully test it with a comparison operation. Maybe you can set it to "ignore" instead of "coerce" or not even set an upper limit. Simply use "in range and coerce" and reset the value under the desired conditions (e.g. via  a local variable) before handing it to the rest of the code. You could even wrap this into an xcontrol.
    LabVIEW Champion . Do more with less code and in less time .

  • Dynamically set the size of the VIEW

    Hello,
    I am looking to set the size of my VIEW which is called in following way:
    IF iv_show_in_pop_up EQ abap_true.
        wd_this->raise_simulation_pop_up( ).
    I want to set of the size of the VIEW if it a pop-up.
    ENDIF.
    How can i get access to the view and set the size. Please Help.
    Regards,
    Piyush

    Hi Piyush,
    Check what Anzy has to say in [here|https://forums.sdn.sap.com/click.jspa?searchID=18635339&messageID=3289078]:
    "You have to go to specific view , which will be embedded in the pop up window.In the view go to ROOTUIELEMENTCONTAINER and set the width and height.This way you can restrict the size of the pop up window."
    This is [another approach|https://forums.sdn.sap.com/click.jspa?searchID=18635339&messageID=5836334] suggested by Abhimanyu Lagishetty for dynamically setting the size of your window:
    "Pass the URL like this to the create_external_window
    javascript:window.moveTo(0,0);window.resizeTo(screen.width,screen.height);window.location.href="http://google.co.in";
    Instead of http://google.co.in write your URL it will maximize the window"
    Regards,
    Uday

  • Dynamically setting the number of collumns...

    Hi,
    I have a report that I need to build. In the requirements I need to dynamically set the number of columns based on the parameters given. I have some ideas on how to do this by building the layout to include all the columns. Then show or hide them based on the parameters passed. I was just wondering if anyone has tried to do something like this? If so, were you successful, and what were some of the major stumbling blocks you ran into. Or if you know of any links to documentation that would help would be great.
    On a side note, would doing something like this be handled better if done in Discoverer? I have not used Discoverer before, so I'm not sure myself.
    Thanks,
    Tom

    Hi Tom,
    You will find useful information in these notes on Metalink:
    261313.1: How to hide columns dynamically without blank spaces ?
    1074438.6: How to dynamically set labels based upon globals
    28533.1: How to create a dynamic report using lexical parameters for column names
    And a comprehensive guide to using lexicals (you will have to use lexicals for column names)
    115072.1: Complete Resource Reference for using Lexical Parameters in Oracle Reports
    Navneet.

  • JSP, DataWebBean: How to dynamically set the where clause of query and display record

    Hi,
    I am reposting this question as per suggestions made by Mr. Dwight.
    I have used ViewCurrentRecord web bean to display records from EMP table. I have to use the Dept_Id_FK from the current
    record of the EMP table to display corresponding records of Dept table. I have a view object called DeptView in my Business
    Components which selects all the records from the Dept table.
    How do I get the value of Dept_Id_FK and use it to display the required records of the Dept table?
    I tried to declare a variable and get the value of Dept_Id_FK but it did not work. My code is as follows:
    <%! String m_DeptId = null; %>
    <jsp:useBean id="RowViewer" class="oracle.jbo.html.databeans.ViewCurrentRecord" scope="request">
    <%
    RowViewer.initialize(pageContext, "EMPApp_EMP_EMPAppModule.EMPView1");
    RowViewer.setReleaseApplicationResources(false);
    RowViewer.getRowSet().next();
    m_DeptId = (String)RowViewer.getRowSet().getCurrentRow().getAttribute("DeptIdFk");
    %>
    </jsp:useBean>
    Thanks.
    null

    First of all, Thank you very much for making use of the new topic format. It is very much appreciated.
    As for your question, I think there are several different ways to accomplish what I think you want to do.
    1. Create a view object that includes both Emp and Dept entities and join them there. In this case, your query would look something like this:
    Select e.empno,e.name,...,d.dname,d.loc from emp e, dept d
    where e.deptno = d.deptno
    You should be able to create a JSP off of this view object that contains both the employee and department information. In this case, BC4J takes care of the foreign key to primary key coordination.
    2. In order to set a dynamic where clause for a view, you need to do the following in your usebean tag:
    rsn.initialize(application,session, request,response,out,"DeptView");
    rsn.getRowSet().getViewObject().setWhereClause("deptno=" &#0124; &#0124; m_DeptId);
    rsn.getRowSet().getViewObject().executeQuery();
    rsn.getRowSet().first();
    You will need to do this in a separate usebean tag from the EmpView, since the usebean can only initialize one view object.
    In other words, you would have your ViewCurrentRecord bean tag for the EmpView, then a separate one for the DeptView where you use the above code to set the where clause to display just the information for the department you want.
    Another option, but one I'm not sure would work as well, is to create a master-detail JSP to do this for you. Usually a master-detail is a one-to-many (one department to many employees). Your request appears to be the reverse, but might still be doable using the same mechanism.
    You set up relationships between views in your BC4J project using View Links. If you used the BC4J project wizard and created default views, some of these links may have been created for you. They are created when BC4J detects a foreign key to primary key relationship in the database.
    You can create your own View Links using the View Link wizard. Select your BC4J project node and choose Create View Link... from the context menu. You will be asked to select a source view (Emp), and a target view (Dept), then select the attribute in each view that related the two of them (deptno).
    Next, you need to reflect this new relationship setting in your application module. Select your app module and choose Edit from the context menu. On the data model page, select the EmpView node in the Selected list. Now select the DeptView node in the available list and shuttle it over. You should see DeptView1 via yourlink appear indented under the EmpView node. Save and rebuild your BC4J project to reflect the changes.
    In your JSP project, you can now have the wizard create a master-detail form for you based on DeptView1.
    Let me know if the above answers your question, or if I have misunderstood what it is you wanted to do.
    null

  • JTable.setRowHeight(int row, int rowHeight) sets the row height to Zero

    TableModel1 model1 = new TableModel1();
    TableModel2 model2 = new TableModel2().
    JTable table = new JTable();
    I dynamically switch the model of the table by calling table.setModel(model1) or table.setModel(model2).
    Now, I have to show rows of variable heights in my table. But when I say table.setRowHeight(row, rowHeight), it is setting it the rowHeight to Zero. What is the problem? Does the fact that I am changing the tablemodels is causing any problem?
    Any help is really appreciated.
    Thanks in advance!

    OK, I found two fixes to this problem:
    1. upgrade to jdk1.4
    OR
    2. When table model data is changed, replace the calls to fireTableDataChanged() with appropriate combination of calls to fireTableRowsDeleted(), fireTableRowsInserted(), and fireTableRowsUpdated().
    I'm not sure if #2 will work for you since you're changing the table model entirely, but you might try #1. I got the ideas from bug 4398268. Good luck!

  • Dynamically setting the color of the title in a Panel

    Hello, I know I can set the color & font of the title in a Panel using the titleStyleName in a stylesheet.  How can I dynamically change the color though?  I have a component:
             <mx:Panel id="myPanel"borderColor="{this.color1}" />
    where this.color1 is a value that changes dynamically, and thus changes the border color.  How do I do this for the color of the text in the title?

    Hi,
    Try this
    var css:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".myPanelTitle");
    css.setStyle("color",0x00FF00);

  • BC4J UIX How To set the cursor in a field

    Hi,
    when i display an bc4j uix edit form, i would like to set the cursor in a field and highlight the entry.
    how con i do that
    Thanks
    Achim

    Hi Adam,
    sorry but ist is not working. i get an errormessage "Object doesn't support this property or method".
    What is wrong?
    here my sourcecode
    <HTML>
    <HEAD>
    <TITLE>MBO Signon Page</TITLE>
    <uix:styleSheet/>
    </HEAD>
    <BODY onload="form1.username.focus(); form1.username.select()">
    <uix:pageLayout>
    <%-- some code here --%>
    <%-- Main page contents go here --%>
    <uix:contents>
    <uix:header text="Login to Mentoring Back Office" >
    <uix:styledText text="Enter your user name and your password to login." />
    </uix:header>
    <uix:spacer width="20" height="10" ></uix:spacer>
    <uix:form name="form1" method="POST" destination="login.jsp">
         <uix:image source="/webapp/blaf/requiredicon_status.gif" />
         <uix:styledText text="Indicates Required Field" />
         <uix:spacer width="1" height="20" ></uix:spacer>
         <uix:tableLayout cellSpacing="5" cellPadding="5" >
         <uix:rowLayout hAlign="left" >
         <uix:spacer width="40" height="1" ></uix:spacer>
         <uix:styledText text="User Name:" />
              <uix:textInput
    id="username"
    name="username"
    text="jonte"
    required="yes" >
    </uix:textInput>
         <uix:formValue name="username" valueBinding="username" />
    <uix:image source="/webapp/blaf/requiredicon_status.gif" />
    </uix:rowLayout>
         <uix:rowLayout hAlign="left" width="25">
         <uix:spacer width="40" height="1" ></uix:spacer>
         <uix:styledText text="Password:" />
              <uix:textInput
    name="password"
    text="jonte"
    required="yes"
    columns="20"
    secret="true" >
    </uix:textInput>
         <uix:formValue name="password" valueBinding="password" />
         <uix:image source="/webapp/blaf/requiredicon_status.gif" />
    </uix:rowLayout>
         <uix:rowLayout hAlign="center">
         <uix:spacer width="40" height="1" ></uix:spacer>
         <uix:submitButton name="Login" text="Login" formName="form1" />
         <uix:resetButton text="Cancel" formName="from1" />
         </uix:rowLayout>
         </uix:tableLayout>
    </uix:form>
    </uix:contents>
    </uix:pageLayout>
    </BODY>
    </HTML>
    <jbo:ReleasePageResources releasemode="Stateful" />
    Thanks
    Achim

  • Dynamically set the sequence of an Item

    Hi,
    I have three record types and am trying to dynamically set where it appears on the form.
    The 3 record types are MEETING REGISTER, MARKET PROBLEM AND BROADCAST CHANGE.
    If the user creates a record with a type of MEETING REGISTER then I want a field called 'duration' to have a sequence of 57, if it is either of the other 2 types then I want it to appear further down the form with a sequence of 241.
    I have tried creating a dummy text item called 'P2_DURATION_SEQ' at the top of the form with a default function of:
    declare
    v_dur_seq NUMBER;
    BEGIN
    IF :P2_RECORD_TYPE IN ('MEETING REGISTER')
    THEN v_dur_seq := 57;
    ELSE v_dur_seq := 241;
    END IF;
    RETURN v_dur_seq;
    END;
    and tried putting &P2_DURATION_SEQ. in the sequence field of the duration field properties with no success.
    Any advice would be great.
    Thanks
    Chris

    Hello Chris,
    If you have just the one field, or just a couple, that needs to dynamically change sequence (I wouldn't suggest the following if you have many because it could become quite a maintenance headache), you can try this:
    1) Define three "duration" fields, say P1_DURATION_MR, P1_DURATION_MP and P1_DURATION_BC. Define their sequence to display wherever each needs to be, respectively.
    2) Map all three to the same database column.
    3) Make each conditional on the record type being "MEETING REGISTER", "MARKET PROBLEM" or "BROADCAST CHANGE" respectively.
    Then, if the record type is "MEETING REGISTER", P1_DURATION will render where it needs to and the other two will not render, etc.
    Hope this helps,
    John

Maybe you are looking for

  • Sql sum question

    I need to produce a CF report only showing the top five suppliers, plus other information. I count each supplier, with group by, then sum the count, with group by, to get the total occurrances of each supplier. My query/subquery is something like thi

  • HT203433 How to cancel an app download

    Not sure if I want to cancel the app or what I need to do. I already had the app downloaded and it was working fine until I tried to upgrade which definitely was not a good idea. I am away from my laptop and cannot connect my iPad to it. I'm camping

  • Milestone trigger of Activity.

    Hello Friends, I have a Project definition says with header WBS and under which three more WBS (Assembly, Testing and Packing) with activities (Assembly, Testing and Packing) assigned to each WBS. In the activity Testing, I have attached a milestone

  • Owner password for PDF files

    I downloaded PDF file, however, when I try to save it to my computer, a window pops up and says; 'without the owner password, you do not have permission to save this document. Enter the owner password to unlock saving the document'. Where and how can

  • VERSION 0 NOT DEFINED

    Dear friends VERSION 0 NOT DEFINED ERROR I am working on CC 4000. When I save sales order, system give 0 version not defined problem. I did:  SPRP-IMG-Controlling-Organization-Maintain version-select 0 Version and click on Setting for Fiscal year the