Friday, June 18, 2010

XPages Challenges with multiple data sources on one page, a UI example

I have a new project to write an expense report application. The requirements are a little different than normal, the users do not want dialog boxes for entries and they dont want to leave the page.

So i created an Xpage that is the expense form, it has the usual header information that this company likes. Then it has a data table to show the entries for each expense item. And it also has a form to enter new items in. Inside the data table is another form to edit that line item. This approach might look better in a grid format(excel style), but i have too little horizontal space for all my info. And of you course you could set edit mode to onclick of the row. This vertical style formatting of this app is because it will also be viewed for approval on iPhones.

Since the main expense form is open and in edit mode(document1 datasource) i leave all the settings for it alone.

For the form(document3 datasource) that actually enters new data in, i have to make some changes. In the properties of the panel that holds the data source for document3, i need to change the scope for the data to "request". That way after i save that document it sets that data source to a new document ready to be saved.

For the inside the data table edit form, i have to change some things as well. This datasource(document2), has to have the property "ignore request parameter", in the all properties panel under the datasource, set to true.

Why, i am not too sure, this data source is set to a document computed to edit document, with a computed docid, which is set by the button to edit that line item in the datatable. It all works now, it was just a little tedious finding out how to make it that way.


Web development services said...

I appreciate this types of Blog for wed design and development services

Web development services

Martin Rolph (Oval) said...

I hit this recently too. "ignore request parameters" is very important for the 'second' data source.
If you open an xpage with url parameters such as editDocument & documentID (which happens by default from things like view controls) then those parameters are picked up by the datasources and override their own settings.
So I tend to have a 'main' data source which relates to the documentID passed in the url, the second one computed seperately and set to ignore the request parameters.

Post a Comment