[译]在InfoPath的重复表中使用公式去筛选最小值数据
2009-11-27 16:42
316 查看
在InfoPath的重复表中使用公式去筛选最小值数据
by S.Y.M. Wong-A-Ton学习如何在INFOPATH中去使用公式(而不使用代码)去找到重复表中某个栏的最小值并且高亮显示。
需求:
当你创建一个重复表,里面包括了一个数字栏,你又想去找到并且高亮显示最小值这些行,怎么呢?
解决方案:
可以使用公式和条件格式,去找到这些最小值。步骤:
示例:在InfoPath 2007, 创建一个新的空的模板.
添加一个重复表,并且这个表包括一个隐藏的栏,(示例为:field2,可以创建3列的重复表,然后删除中间一栏来完成)。
把表的第一个栏转换成具有日期选取器的控件。
在数据源面板中,右击myFields节点添加一个节点叫minDate 并且设置这个节点是日期类型,如下图所示
![](http://www.bizsupportonline.net/infopath2007/articles/images/repeating-table-date-field-infopath-20090523.jpg)
Figure 1. Repeating table with date and hidden fields and the Main data source in InfoPath Design mode.
在数据源面板中,双击这个在重复表中你隐藏的那个字段,打开它的属性对话框,在这个示例中这个字段为Field2
在域或组属性对话框中,单击公式按钮,Fx。
在插入公式对话框,勾选编辑XPath(高级)选择框。.
在插入公式对话框中,复制、粘贴下面的公式到公式文本框中:
substring(../my:field1, 9, 2) + ((153 * (substring(../my:field1, 6, 2) + 12 * ((14 - substring(../my:field1, 6, 2)) div 12) - 3) + 2) div 5) + 365 * (substring(../my:field1, 1, 4) + 4800 - ((14 - substring(../my:field1, 6, 2)) div 12)) + ((substring(../my:field1, 1, 4) + 4800 - ((14 - substring(../my:field1, 6, 2)) div 12)) div 4) - 32083
这里 在第一栏的field1 (是一个日期选择器控件),就是你想找到最小值。
单击 OK 关闭所有的对话框。
在数据源面板中, 双击 minDate 字段打开它的属性对话框.
在 域或组属性 对话框中,单击值文本框后的公式按钮FX
在插入公式对话框中,选择编辑Xpath(高级) 选择框。
在插入公式对话框,复制粘贴如下的公式到公式文本框中:
../my:group1/my:group2/my:field1[../my:field2 = xdMath:Min(/my:myFields/my:group1/my:group2/my:field2)]
单击OK 关闭所有找开的窗口
双击 重复表第一栏的日期选取器控件,打开属性窗口
在日期选取器属性, 选择显示选项卡, 然后单击条件格式.
在条件格式对话框中,单击添加.
在条件格式 对话框, 添加2个条件:
field1 等于 minDate
与
minDate 不为空
在条件格式对话框, 选择一个颜色用于底纹,然后单击 OK.
单击 OK 关闭所有打开对话框。
![](http://www.bizsupportonline.net/infopath2007/articles/images/select-minimum-date-infopath-repeating-table-20090523.jpg)
Figure 2. Selecting the minimum date in a column of a repeating table in InfoPath.
大功告成!当你添加重复表中的新行,最小的值就会被特别显示出来。
本解决方案对于浏览器兼容的表单同样适用 InfoPath 2007 browser forms.
相关文章推荐
- [SharePoint 2010 的那些事儿-InfoPath]使用InfoPath表单筛选SharePoint列表数据
- 使用InfoPath表单筛选SharePoint列表数据
- JAVA笔试面试之使用堆排对大量数据进行筛选最大或最小
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
- Sql Server使用cursor处理重复数据过程详解
- linq 使用first筛选出第一条数据
- redis使用教程原理-第五章:数据类型之集合无序不重复
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
- 使用ORACLE开窗函数over()进行重复数据的删除【自用】
- 如何读取Infopath中的重复表和重复节中的数据
- 解决fragment与viewpager一起使用时fragment中的listview数据出现重复
- java.util.Collections类使用,查找集合中重复数据
- VLOOKUP使用技巧之按指定次数重复数据
- Linq使用Distinct删除重复数据时如何指定所要依据的成员属性zz
- mysql查找重复数据并只保留最大最小数据
- mysql 创建唯一索引前 删除重复数据只保留id最小一条。
- Sql Server cursor 的使用处理重复数据 动态拼接 SQL语句
- 单片机寄存器组注意重复使用时原数据可能被覆盖危险
- 使用Pandas对数据进行筛选和排序
- controller中多用户并发时候,每个用户使用完参数化中的数据不在重复使用且每个用户不使用相同参数化数据的方法