XPages - Value Picker - Update Multiple fields - xpages

I would like to use a dominoViewValuePicker to update several fields with several values. I have seen that it is possible to add multiple values to the one field. Is it possible to select one document from a dominoViewValuePicker and then use multiple values from this document to update multiple fields on the XPage?

Certainly. Just set the onChange event to refresh those fields (preferably, they all go into a panel so that you can do a partial refresh rather than a full refresh) and compute the values (either from the script on the onChange or just by the formulas for determining those values in the first place).
If you do set up a panel for a partial refresh, make sure to give the panel an ID. By default panels are not given ID's and are not available to refresh.

Related

Sharepoint Drop-Down Column with Multiple Select Choices

One of my columns contain 200 countries. End user should be able to select multiple items from the list.
Sharepoint multiple choice column only allows for one of three choices:
Drop-Down Menu
Radio Buttons
Checkboxes (allow multiple selections)
I'd like to be able to combine the features of Drop-down menu and checkbox.
Is this possible and is there a workaround in Sharepoint designer?
Not looking to do this in InfoPath forms.
Thanks!
You need to put your 200 Countries values into a Custom List, then use a Lookup column rather than a Choice column.  With the Lookup column, you can allow multi-selects.
If you can change your field type to another then use type "Lookup column with multiple values". It has good UI experience. But you must create additional list with your 200 countries.
If you want to use only choice type field then I think no, you must add custom control on form.
May be like this:
1. Add script on form.
2. Script will render some jquery autocomplete control (https://jqueryui.com/autocomplete/#combobox) or select2 control (https://select2.org/dropdown or https://select2.org/selections) on form load. If no third party controls exists that applied to you then create own control with necessary features. Populate it from out-of-box field options.
3. Hide out-of-box field.
4. Add onChange or onPreSave handlers that copy values from your custom control to out-of-box field.
When form saved it save out-of-box field value to list item.

Xpages chained djFilteringSelect in separate dialogs

I am trying to make a 2nd djFilteringSelect using a #Dbcolumn depending on the value selected in the 1st djFilteringSelect control. That's a common task, using a partial refresh. However, each of the controls is within a dialog control from the extension library. One dialog pops up, the user selects a value, and automatically the 1st dialog closes and the 2nd opens. YOU CAN'T SEEM TO REFRESH THE FIELD (I'm guessing b/c it's not in the DOM). I've tried writing the first value to to an computed field and/or a text box on the main Xpage using CSJS and then looking for that value for the second lookup. Also, tried with SSJS, etc. I tried do updates and writing to fields on either the onChange or on the click of button. How do I go about using the selected value of the first to do the lookup in the 2nd?
You can use a single dialog control where you hide and show the relevant controls. I am using this approach in several apps.

Xpages Repeat Controls Tabular display

I have a situation wherein I need to display all documents in view. Issue is I need to display multivalued fields (can be achieved by modifying view column to display new line). Now issue comes when a column value is also multivalued. E.g. first column is created by looping through 50 fields (single value) and second column is created by looping through corresponding 50 fields but these fields are multivalued.
I am looking for ideas about how to nest repeats in this case. Issue is in first repeat I get the handle of documents but in nested one i am not able to get this handle to be able to loop through fields. And it is not simply one column or value I want to display, there are 4-5 such columns.
Any ideas are welcome.
Thanks in advance.
You want to start looking at a repeat control, not a view control. Have the outermost control loop through the entries in the view and populate the data source of a containing panel with a Notes document. Then inside the panel you only refer to the inner document data source.

checking if current user is author of the document

I have a formA where I have a field '_author' which is of type Authors/Computed for display with value (#Subset($Updatedby;1)). I display information from formA on viewA. What I want to achieve is that documents that are created by you are only visible to yourself on viewA. I tried the following formula in viewA 'View Selection':
SELECT (form = "formA" & #UserName =_author). Even though I know that these two variables have the same values when I read it from the document's properties, the condition is not satisfied and I do not see a single document. If I delete everything after "&", the view shows all documents.
All is hosted on a server which handles users.
A handy workaround is to create a Page with an embedded view. This view is exactly like your view but has an additional first categorized (!) column with your field _author.
Put into embedded view's property "Show single category" the formula #UserName or #Name([CN]; #UserName) depending on how your categorized column _author is formatted. Show then always the Page instead of the view.
This way you avoid trouble with "Shared, private on first use" views and users see exactly their own documents only.
#UserName works in a special manner in selection formulas in views. In your case the view should be Private on First Use. Read further here: http://www-01.ibm.com/support/docview.wss?uid=swg21089773 .
Be aware that this lead to all sort of issues, e.g. when you update the design of the view users must remove the view manually to get the changes deployed.

Using Relational Controls, how do you do a "soft" delete

In the relational controls sample db (xpagesjdbc.nsf) there is an example called JDBC_RowSetDatasource. This uses a view panel and has the check box turned on in the view panel to allow the user to select a document. Then there is a button to delete the selected docs using a simple action, delete selected documents. This deletes the document but until the button with the code that has jdbcData1.acceptChanges() is pressed the changes are not committed and the row shows as to be deleted (first icon column with the isRowDeleted() call to determine the icon).
I am working on a similar situation but with a repeat control. I can delete the row with #jdbcDelete but that is immediate. Looking at the data it shows the row is gone from the data even before acceptChanges() is called.
Since I can't use the simple action to delete selected documents (no view panel) what is the Java equivalent to delete the row in a similar manner? I have tried deleteRow() on both the variable for the data set and for the row but get an error in both cases.
Howard, the simple action just memorizes the primary keys of the records as to be deleted. If you want to simulate that you need to take a similar approach (using a ViewScope variable or bean) to keep track of your "deleted" records and a method that executes the actual deletion.
Smells like a case for a bean

Resources