Saed Al Shaar Dev Tips and Tricks

.NET and SharePoint from a different angle!

Archive for the tag “InfoPath”

InfoPath 2007 – MultiView Web based Forms based on Simple Roles

Hi Folks,
Lately, I have been searching for a solution for one of my InfoPath forms where I need to have different view for the person who fills the form at the first time, and another for the Admin of the form.

The issue is that InfoPath 2007 and 2010 does not support a wizard based functionality to check the current user and it’s groups and comparing them with the SharePoint or AD groups, and User Roles is not supported in InfoPath Form Services.

I have checked many good articles talking about using WSS Web Services to retrieve the User Groups and many other complicated stuff, but I don’t like to comlicate things up.

Well, I have thought in a different direction, where I can create my own simple roles as I will explain here:

1- I have an InfoPath Form published on SharePoint document library, with 2 views, the default and Hidden views.

2- I created a sharepoint List named Admin with one column named UserName, and added the user name accounts for the administrators.

3- You need to create a Data connection to the list, if you don’t know how here is a link to do so:
You just need to read the part of “Add a query data connection”, at the end you will have a data connection to the Admin list.

4- In the InfoPath form, go to ToolsForm Options — choose Open and Save from Category pane.

5- Click on Rules button, and the Add button to add new rule.

6- Click on Set Condition button on Rule diagram.

7- Then from the drop down menu chose “Select a field or group“.

8- Then Select a Field or Group dialog window will open, chose the Data source for the Admin List, then chose the column name (UserName), and from the Select dropdown chose “Any occurrences of UserName“, then Click OK button.

9- Then, chose “is equal to” , and chose “Use a formula“, a chose the formula “userName()“.

10- Then click on OK button, and now we need to add an action to swith the view named “Hidden” as per the following illustration.

That’s it!

Now, whenever a user from the Admin list open the Form, it will switch to the view named Hidden.

Happy InfoPath-ing!

Validate Current Time in InfoPath

Hi Folks,

Recently I as looking for a way to calculate the current time in InfoPath to be used in the default value field or the validation, I’ve been googling alot but I couldn’t find a solution untill I got it working!

The senario I will be explaining here is I need a field to enter a time, and I want to validate that the time entered should be at least after 1 hour of the current time.

The concept is to get the current time, then add 3600 (60 sec X 60 min) second to it, so the time entered by the user should be Less Than the current time added 3600 seconds (1hour).

The steps goes:
1- In InfoPath, add a Text Box.
2- Open the Text Box Properties window.
3- Change the Data Type to “Time”.
4- Click on the Format button to chage the Time Format to “9:46 AM”.

5- Click OK once, then click on Data Validation button.
6- Then click on Add button in Data validation screen.
7- Choose (is less than), and choose (Use a formula) from the drop down box, to create the formula.
8- Then Insert Formula dialog box will appear.
9- Then click on Insert Function button, the Insert function dialog box will appear.
10- Chose Date and Time, and chose “addSeconds” Function, and click OK button.
11- Then you need to change the formaula as follows:
12- The Formual is: addSeconds(substring-after(now(), “T”), 3600)
This formual will take the time part of NOW() function, then it will add 1 hour (60 sec X 60 min), so the validation will be:
If the field entered is Less Than the Current time + 1 hour, then it will pop up an error, the time should be at least after 1 hour of the current time.
13- Click on OK button, then type the Screen Tip, Message and check the Show dialog box messages …
14- Click on OK button 3 times.
15- Preview the form, and try to type a time after 30 min after your PC current time, it will give you the error as follows:
That’s it!
Happy programming!

Post Navigation

%d bloggers like this: