一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(9)--高级函数

   在第五章节,当我们介绍函数概念并在练习中使用concat和now函数,你了解了infoPath函数。InfoPath中大多数函数都是不言自明的,表单设计者有个常见的问题,关于文本自动大小写转换的用例。你的表单可能需要它----如比较两个域(大小写敏感会影响结果)。另一个例子是强制某个域为大写或小写,即使用户没有正确输入(自动转换)。

        支持这个功能的InfoPath函数叫Translate。它有三个自变量,返回转换过的文本字符串。第一个自变量定义文本字符串内容,第二个决定改变哪些字符,最后一个指定改变字符成为什么。第二个自变量中的字符被转化到第三个自变量匹配位置的字符。因为第二个位置的字符被转换来匹配第三个自变量,通过给第三个自变量null值,Translate也用来从一个字符串抽取出不想要的字符。

        下面的练习帮你理解如何使用Translate转换大小写(无论用户输入什么都变成小写)。

        准备:打开InfoPath Designer,创建一个空白表单。

1.      给表单添加两个文本框控件。

2.      右击第二个文本框空间打开属性。

3.      点击“默认值”,点击“插入公式”。

4.      选择“插入函数”,在“文本”类别,选择“Translate”。

5.      双击第一个“插入域”链接,选择第一个文本框(可能名为域1)。

6.      用下列文本代替另外两个“双击以插入域”:”ABCDEFGHIJKLMNOPQRSTUVWXYZ”, “abcdefghijklmnopqrstuvwxyz”。字符和引号都不能错。

        注意:记住,Translate将第二个自变量转换为第三个。所以这里是将第一个文本控件值从大写转化为小写,反过来也可以做。

7.      点击“确定”两次,预览表单。

8.      在第一个文本框输入大小写结合的字符,按下Tab。

        如果你想看另一个,使用Translate函数更加复杂的例子。打开13章节“SharePoint视图和仪表板”的Help Desk模板。这个表单中,创建新申请按钮有个提交规则。第一个操作就是设置RequestID域值。

        Translate函数在这里使用,与另外两个函数结合,SubString、Now。

        目标是创建一个申请ID,由Now函数生成但是去掉不要的字符,从返回值第六个位置开始。所以Translate函数将Now值作为第一个自变量。第二个自变量展示你想要代替的文本。任何文本如(:-或T)都会变成第三个自变量,null值。换句话说,去掉这些:-或T。

        进一步讲,下面截图,第一个域是标准的文本控件,应用了Now函数,没有任何修改。第二个有应用了Help Desk表单中使用的公式更加复杂的版本。

        你可以看到通过恰当地应用函数,表单去掉了不要的字符,留下月08,日期26,和代表当前小时06、分钟46、秒52。我们最后有个非常高效的方法,使用函数组合给表单ID域分配唯一的整数值。

posted @ 2015-02-10 15:38  batter152  阅读(256)  评论(0编辑  收藏  举报