Define Hierarchical Comboboxes
-
For example a typical Country/City scenario would include 2 lists.Countries (ID, Title)
-
Cities (ID, Title, Country) where the Country field is a lookup for the Country List.

After configuration, the form automatically identifies changes in the constraint fields and reloads the depedent list using the criteria provided.
Additional criteria can be applied to the list query by using the “Lookup Criteria” property. Instructions on how to add criteria can be found using the following links:
Declaring a lookup/combobox control
Available options:
Choice Control (Single Selection)
Declare a new ComboBox or LookupPicker control. Set the Target Field Name and in the Lookup Details tab, set the Lookup Static Values property adding all the required values concatenated by semicolon (;).
For example for a rating field : Low;Medium;High
During initial form customization, the form designer identifies the choice controls and prepares the values for you.
Choice Control (Multiple Selections)
Declare a new MultiLookupPicker control, set the Target Field Name and set the Lookup Static Values property (values concatenated by semicolon). The MultiSelect propertyin the General tab should be checked.
For example : SALES;SUPPORT;SERVICE;MARKETING
Lookup Control (Single Selection)
Declare a new ComboBox or LookupPicker control
In the Lookup Details tab, set the Lookup Url (for example http://servername). As soon as the property is updated, the Lookup List combobox is filled with the available lists found. Select the required List and the required view (optional).
If you need you may set criteria to query the list in the field Lookup Criteria. The criteria are defined using the Criteria Editor.
Available values for the Operator are : Equals, NotEquals, Greater, GreaterOrEqual, Less, LessOrEqual, IsNull, IsNotNull, BeginsWith, Contains.
Available values for the type are : Text, Counter, DateTime, Lookup, Number

Next, select the Lookup Display Field (usually Title) and the Lookup Value Field (usually ID, unless you have selected to store a different field in your form).
More information on how to setup your lookup criteria can be found HERE.
If you decide to create a ComboBox field, all values are loaded during startup. For long lists, you should select the LookupPicker control. The LookupPicker allows the user to search for the required value by opening a popup dialog. If you still decide to present all the values during popup loading, you should check the Preload Lookup Data checkbox.
Using the DataEntryGrid to save to separate lists
The DataEntryGrid control is used to allow users define a field structure and store complex information inside a multi-line text column formatted in XML.
In many cases, there is a requirement to keep this information in a separate list instead of storing an xml formatted value in a list column. Users need to add the master record and its related detail records with a single “Save” action, without having to save the master record first and then add the detail records one by one.
For example, the user wants to add a new order and provide the order lines at the same time, while the order lines are stored in a separate list.
DataEntryGrid has a new working mode that allows users to achieve this. Instead of storing the results in XML format, the control keeps track of every change in the detail grid (insertions, updates, deletions) and sends the information to the server along with the changes in the master record. This allows a single action to persist multiple list items in the back end.
To do that a user has to do the following :
- Create a list query that will provide the control with its detail information
- Define the list query criteria that will retrieve only the related records from the detail list
- Define the fields for the DataEntryGrid control using the column names of the detail list
- Bind the control’s value to the list query
- Define values of the DataEntryGrid that will be automatically set (for example the parent ID)
- A special keyword : {ParentID} can be used to allow the control to set the ID of the master record to a value of all the detail records
- The above will happen even if we are inserting a new record. The system will first insert the master record, get its ID and then use it to update every detail record provided.
Example
We have 3 lists :
Products (ID, Title)
Orders (ID, Title, OrderDate)
OrderLines (ID, Title, ParentOrder, Product, Quantity)
NOTE : The ParentOrder column of the OrderLines list is a lookup column referencing the Orders list. The Product column of the OrderLines list is a lookup column referencing the Products list.
After registering PowerForms for th Orders list this is what you will get :

We now have to create a list query that will retrieve the related OrderLines.
Switch to the designer, go to List Queries and define a list query using the settings below :

Note that we uncheck the “Ignore Blank Criteria” option since we do not want to get all order lines when the c_ID control is blank (for new orders).
Now we switch to the run time designer and add our DataEntryGrid control and set its height to 200.
We open control properties and in the “Value” tabm we bind its value to the list query we have just defined.

We now have to create the controls we will use for editing the order lines.
The DataEntryGrid grid, allows users to use hidden controls of the parent form. So we will create the required controls and mark them as hidden so that the control can use them when required.
We create a Label control for the OrderLineID named “c_DEG_ID” (no need to edit that). Then a LookupPicker control for the product named “c_DEG_Product” and finally a NumberTextBox for the quantity named “c_DEG_Quantity“.
Spefically for the c_DEG_Product lookup control we have to define its lookup parameters in order for it to load products.

We then hide those three controls and setup the DataEntryGrid control properties.
In the Extra configuration of the control we add 3 fields :
Name = ID, Type = Existing, Header = ID, Width = 70, ExistingControlName = c_DEG_ID
Name = Product, Type = Existing, Header = Product, Width = 150, ExistingControlName = c_DEG_Product, DisplayForms = DisplayField (we just want to show the Title – not the ID)
Name = Quantity, Type = Existing, Header = Quantity, Width = 80, ExistingControlName = c_DEG_Quantity
We also select InlineEditing to allow faster data entry for the users.
Since we want the ParentOrder field to be automatically filled by the control, we add a new Value :
Name = ParentOrder
Value = {ParentID}

We then save the designer and we get our new form :

In the above screenshot, we are inserting a new order and select to add 2 order lines for that order.
Obviously the order line ID is blank since these are new records.
Since we press the Save button, the system will first insert the order and then use the ID of the new order record to persist the provided order lines.
Our form after saving the order record :

And if you visit the OrderLines list we will verify that our 2 order lines are there and connected with the new Order record.

Even when editing the order record, the control will keep track of all changes made to the order lines (new, deleted, modified) and persist them only if the users decides to update the order record.
The Managed Metadata controls
In order to provide values to Sharepoint Managed Metadata Columns (available in Sharepoint 2010) a set of three controls are provided:
All of the above controls can be bound to a column of type ‘Managed Metadata’. The very same controls can be used to Enterprise keyword columns. Please note that in the current version no term addition can be performed with these controls.
The control exposes a lookup picker that opens a popup form with the termset list defined in the Sharepoint’s column properties. Only one of those terms can be selected from the list:

Similar to every lookup picker, an item can be selected by clicking on a term and pressing “OK”, or by simply double-clicking on the term. “Clear” button empties the field’s value.
Extra Configuration Tab
The following extra properties are available to Managed Metadata Picker:
ButtonVAlign: Sets the vertical alignment of the browse/search button.
AllowBlankSearchText: Defines if the user is allowed to search the list without providing text-search criteria.
Sorted: Defines whether the results will be sorted by the Display Field
EnableSearchOnFocus: Defines if the control will display a search textbox when it receives focus, allowing users to type criteria and activate search by pressing the enter key.
This control exposes a lookup picker that opens a popup form with the termset list defined in the Sharepoint’s column properties. One or more of those terms can be selected from the list:

As with every multi-lookup picker in PowerForms, selected values are displayed on the bottom side of the pop up form and can be de-selected with the red “X” button that accompanies them. In order to select/unselect the desired items, just check/uncheck the checkbox next to the result terms, and press OK. “Clear” button empties the field’s value.
Extra Configuration Tab
The following extra properties are available to Multi-Managed Metadata Picker:
Delimiter: Defines the delimiter between selected items. If left blank, the items are separated by a comma. Use ‘\n’ to place each item on a separate line.
Prefix: A string that will be placed infront of each item. i.e.’•’. Use ‘\counter’ to add a counter (i.e. 1, 2, 3, 4, etc)
ButtonVAlign: Sets the vertical alignment of the browse/search button.
AllowBlankSearchText: Defines if the user is allowed to search the list without providing text-search criteria.
Sorted: Defines whether the results will be sorted by the Display Field
The control exposes an autocomplete textbox that searches in the Sharepoint column’s termset as you type. Only one of the matching terms can be selected from the dropdown list:

Extra Configuration Tab
The following extra properties are available to Managed Metadata Textbox:
PrefixLength: Defines the minimum text length that will activate the auto-search feature
DropDownHeight: The maximum drop down height of the control.
Sorted: Defines if the results will be sorted by the Display Field
The Hyperlink TextBox
The Hyperlink TextBox targets SharePoint columns that store hyperlinks or picture urls.
In contains 2 textboxes. One for the actual URL and one for its description (the same way it appears in the default SharePoint forms). If no description is provided by users, the url is used for the description part.

A button is available for users to test the link provided.
The control comes with alot of extra parameters to customize its appearance and functionality.
ShowDescription
This property shows or hides the description part of the control to simplify control appearance.

ShowBrowseButton
This property enables a Browse button next to the hyperlink textbox that enables users to browse through the documents in any document library.

Pressing the button opens a popup dialog that can browse any document library accessible to the user, event in different Sharepoint Sites.

Using the popup dialog, you can provide the site url, select the required list and browse within the library folders and documents to find the required entries.
The popup dialog has a name-search filter and an option to search files within folders.
The control also comes with options to customize the control to only accept files from specific sites or document libraries.

GetFullUrlFromBrowseDialog
If this option is selected, the control will store the absolute url of the selected document. If not, a relative url will be returned.
AllowSearchInFolders
Enables or disables the option that allows users to search within folders using the name-search filter.
AllowSelectUrl
Enables or disables the URL textbox of the dialog.
AllowSelectLibrary
Enables or disables the Library combobox
TargetURL
Sets the target URL. This property can be static or calculated. For example a value like the following can be used:
http://{c_Server}/Shared Documents
TargetLibrary
Sets the target Document Library Name. This property can be static or calculated. For example a value like the following can be used:
Folder_{c_ID}
The PeoplePicker, MultiPeoplePicker, PeopleComboBox controls
The PeoplePicker and the MultiPeoplePicker controls are used to retrieve and select user or group entities from SharePoint or the Active Directory Listing. Depending on applied settings, these controls can retrieve data from SharePoint Groups or perform ActiveDirectory queries (the same way that SharePoint loads users and groups).
Any of the available options can be used.

People Only
The property indicates that only users (not Groups) will be included in the retrieved lookup records.
Specific Groups
Users can select one or more SharePoint groups to restrict results loading users only from the specified groups. This options is available only when the “People Only” property is selected.
Preload Data
Used to load records automatically when opening the search popup dialog.
Options for MultiPeoplePicker

Options for PeoplePicker

PeopleCombo does not have any Extra Configuration Properties
ActiveDirectorySearch
Values: True, False (Default)
When set to True, the control searches Active Directory users in the same manner as SharePoint does. The control requires the user to provide a search filter, by entering a value, before performing the actual search. If set to False, the control retrieves users and groups from those defined in SharePoint.
The following extra configuration properties belong only to MultiLookupPicker.
Delimiter
Values: A single character (Default is ‘ ,’ (the comma symbol without the delimiters)), or ‘\n’ without the delimiters, to place each item in a separate line.
Acts as the delimiter between a selection of multiple items. If left blank, the items are separated by a comma. ‘\n’ places each item in a separate line.
Prefix
Values: A single character or ‘\counter’ to add an increasing number.
Define a text character that will be placed in front of each item acting as a prefix; i.e.’•’. Use the ‘\counter’ command to add a counter (i.e. 1., 2., 3., 4.),
ButtonVAlign
Values: None, Center, Top, Bottom.
Sets the vertical alignment of the Browse / Search button. The use of this property doesn’t become apparent, until someone selects multiple values while using the ‘\n’ Delimiter option.

