Getting Value Picker and HughesConnect Viewpicker combination in XPages - xpages

I have an application that uses the Ext Lib value picker from a view and it works but it is very cludgy. The reason is that there are over a thousand choices and the user has to scroll through them all to get to where he/she wants to go. I want to use the HughesConnect.com picklist CC, which is very nice. However, I am having trouble with a particular issue that is probably very simple but I can't figure it out.
I want to be able to use the HughesConnect.com picklist CC to grab one value at a time and put it into a field. Then, when the user clicks on the button again, I just want them to have the ability to grab a value and append it to the same field. Every time I run it now, it is just overwriting the field. I can't use Multi Value in the CC because the view has multi values in the column from the same document. I have found that if this is the case, it doesn't work. No matter what I try. I am not very good with arrays in XPages, so I am likely doing something wrong and to be honest, I don't even have any sample code because everything I have tried hasn't worked.
I am starting to wonder whether it's even possible but it sounds so simple that it must be.

The Value Picker allows you to add a search with a view data source. Is there a reason for not using that? I can't remember if search support multi-select. It may not.
If you want to use Mark's view picker, how about getting a bit creative. Push the value into a Hidden Input field that has an onChange event. In the onChange event, append the value to a different multi-value field. If you bind the Dojo List Text Box to your multi-value field, it will make it easier for users to deselect entries. It's a bit creative, but should produce exactly the result you're looking for.

Related

Are there any negative consequences of giving ‘Title’ field a default value of ‘View’ and making it a hidden field?

When I create a list, I have gotten into the habit of doing the following:
Change Title field name to Item
Give it the default value of View
Go to Advanced Settings
Allow management of content types > Yes
Click Save
Then in Settings, click on the Item type
Then click on the Item field and select Hidden
Then go back to Advanced Settings
Allow management of content types > No
Click Save
The result of this is that:
The Title field (now called Item) is hidden in the form
I have a column called Item, which has the link View in each row (which opens up the item)
I can’t remember why I started doing this (possibly one of the reasons outlined in this video), but the use case must have demanded it and I just kept doing it.
However, lately I have been having troubling thoughts about whether it negatively effects indexing or has any other undesired outcomes.
For example, I did a search in a list the other today, and in the drop down search results that were displayed, I just got multiple rows of the value View.
I also read just before posting this question that list items in the recycle bin will be identified by the value that was in the Title column. So if they all say View it will be impossible to differentiate one from the other.
So I just thought I would see if there is any authoritative, definitive best practice around the Title column, and ask if my convention is bad and if so what I should replace it with.
Thank You.
(Edit: I also hide the Title column in document libraries, as it doesn’t seem to serve a purpose, as clicking on the value in the Name column opens up the document anyway - therefore the ‘link’ action of the Title field is not required).

#SetViewInfo with Sorted Columns

Can someone advise whether #SetViewInfo can be used with click to sort columnns.
When a view is filtered using #SetViewInfo it removes the column sorting options, thus removing the functionality of the view. Even when resetting to all records the column sorting option is not available, however I have overcome this by opening a second view then opening the original view, messy but it works. I am using View Action Buttons. (Not sure how to store the value in a Check Box Action).
Filtering
#SetViewInfo([SetViewFilter]; "userinitials"; "$80"; 1)
Resetting.
#SetViewInfo([SetViewFilter];"";"$80";1);
#SetTargetFrame("frame");
#Command([OpenView]; "DummyView"); //Needed to get the click to sort back
#Command([OpenView]; "OriginalView")
Also if the view is already sorted on another column, ie not in a categorised state no records are found. I don't want to have to remove the sorting options on my views. The help implies you don't need to have the view categorised. But I cannot get it to work if I don't, ie if I use 0 on an uncategorised view nothing happens.
From Help
isCategory - Number. Boolean value. Required in a Standard Outline view; not for use in Calendar views. 1 indicates that the column in the columnName value is a category. 0 indicates that it is not.
Is the #SetViewInfo limited as I have found or am I missing something?
Any help appreciated.
Yes, #SetViewInfo has limitations. As far as I know, you cannot keep the sorting when you use SetViewFilter. I also believe you need to have the view categorized, at least in older versions of Notes this was the case, if I remember correctly.
Limitations like this is why I personally don't use #SetViewInfo very often (if at all), I try to use other ways to display filtered documents.
One way I have handled it in the past is to use a special form with a rich text field, and then I build a list of filtered documents (e.g. through a search) and render the list of documents in the rich text item.
I use this technique to do that: http://blog.texasswede.com/dynamic-tables-in-classic-notes/

Entering multiple values using #setfield

I have a text field/editable, allow multiple values, semicolon for both Multi-Value Options property, in which I want to save current user when they click a button. On the button I have the following code:
#SetField("fieldA"; #Name([CN];#UserName));
The previous value always gets overwritten by the new. What would be the solution to have multiple values stored in?
#SetField("fieldA"; fieldA:#Name([CN];#UserName));
That will append the current user's name to the item.
You might want to look into using the #Unique function. Remember there's a 32K limit of summary field data, so don't let this list grow indefinitely. See #Subset function. Also, bear in mind that the user can save the document without clicking your button, so a Querysave event might be a better place to do this.

Save Infopath form w. dynamicly created fields in Sharepoint 2010 Library

I am very new to Infopath, and need some architechtual guideslines. My scenario is as follows:
I have a Sharepoint list, let's say it contains beer, and three items of it: "Kronenbourg", "Corona", "Tuborg". "Beer" is a content type, derived from Item.
What I need to do :
I need to create a "dynamic" Infopath form, that presents the user with a CheckBox for each beer. If a new beer is added to the Beer list, a new Checkbox should show up on the form without intervention, even on saved instances of the form. I have not decided what should happen upon deletions.
I then need to save this infopath form, including the selections, in a sharepoint form library, so that the users can go back to one of maybe many beer-forms that they have saved, and maybe change the selections.
I also need to build a string from the selections at some point in time, and present this string in a visible column in the form library, but thats beyond the scope of this post.
What I managed to throw together so far:
I have a kind of working Infopath form. I have added a sharepoint dataconnection to the Beer list, and dragged a repeating table to the design area. This "works", i get a list of my list items. I then added dummy Y/N field to my beer content type, selected it in the fields, and now i get a neat checkbox next to my records.
Obviously this does not seem right. I do not need to save anything back to the Beer table, I only need to use the beer table for lookup, and keep the selected choices in the saved instance of the form.
Ok, thanks for staying with me so far. What do I do here, can Infopath be persuaded to support a scenario like this, or am I better off building custom webparts? I think my main questions are:
Can I maybe attach an "input-only" CheckBox to a repeating list/section ? (and how do I refer to such dynamically created control)
How do I make Infopath load the choices dynamicly from db, but save the data in the instance of the form?
Should, and can I maybe attach a content type to the form library, representing the choices and somehow attach that to the form?
Thanks for any input
If I understand your requirements, I think the thing to do here is to use a Multi-Selection list box (MSLB). This can have its values populated from a secondary data source (i.e. a list), and it would be bound to a repeating field that would automatically have values added and removed as values are selected and deselected.
As far as getting the selections into a single string, if you just want this value for a column of the form library that the forms will be submitted to, you can just use this repeating field as a promoted property, and use the "Aggregate" option to combine the values into one.
The other option would be to create a separate field to hold the string and use the "double eval trick" (please Google that) to combine the values into one. One gotcha here is that if you use double eval trick with a MSLB, you have to put the formula both in a rule on the MSLB's field, and in the default value formula for the target field.

How do I set a SharePoint list field in NewForm.aspx based on an input radio button?

I have modified the NewForm.aspx page for a SharePoint list, and am changing the visibility of certain div's based on the value of radio input buttons. I'd like these values to be passed to a list field as well. I have a couple of questions regarding this:
1) How can I pass the Yes/No value from the radio input to a SharePoint list field?
2) Can I drop a Yes/No field from the list on the form and use that to control the visibility of my div's?
Thanks.
Since you're already using JavaScript, on your NewForm.aspx you could probably use SPUtility.js; full disclosure, this is an open source library I maintain.
Both of the options you mention are possible. I haven't added support for Yes/No fields (as of v0.3) but you could probably do something like this.
Create a single line of text field (will hold your value in the list). Lets call it "Text Field".
Based on our radio button input, call SPUtility to set the field's value:
SPUtility.GetSPField('Text Field').SetValue('Hello world!');
You could also probably hide "Text Field" so they can't see the value change.
Or... if you wanted to go with option #2, you could help me add support for Yes/No fields. :)
Hopefully this helps.
You can use our Smart List Pro product to modify your list form. We have various capabilities, such as showing/hiding fields depending on values of other fields and user identity, tabbed interface and much much more.

Resources