我正在尝试从InfoPath中开发一个计算器类型,用户将被要求结束体重,身高和年龄。然后,我将获取这些值并使用它们来查找基于该数字的其他值。例如,如果列标题是Gender,Age,Height,L,M和S.我想找到与该高度相关联的'L,M,S'值。案例中的所有值都不同。因此,如果高度为45,L = -1,M = 1,S = 2;如果高度为50,L = -2,M = 5,S = 3。
在excel中你有一个Vlookup,其语法为:
Dim A as double
Dim Height as double
height = txtHeight.Value
A = Application.WorksheetFunction.VLookup(height, Range("C2:F652"), 2, False)
这将为您提供该高度所在行的“L”值。
我如何在InfoPath中执行此操作?我已经看到,您可以为下拉列表和组合框执行级联查询,但我希望它们能够键入值,根据该数字在SharePoint列表中查找值,然后将该数字返回到另一个文本框以供使用我的计算。
答案 0 :(得分:3)
如果要查找的值位于SharePoint列表中,则需要创建与该列表的数据连接。确保包含您需要的所有字段。不要在表单加载时加载数据连接。
让用户输入高度。为字段更改时触发的高度字段创建规则。添加一个操作,将辅助数据源的查询字段设置为高度字段的值,然后查询数据连接。现在,辅助数据源包含具有该高度的记录,而辅助数据源中的字段包含值。您可以将值复制到画布上的文本框中。
更多细节: 设置到“高度”列表的数据连接后,单击“高度”字段,然后单击“新建”>添加规则。行动。
单击“添加”按钮并添加操作以设置字段的值。
单击“字段”文本框旁边的按钮。如果您没有看到顶部下拉列表选择与主数据源不同的数据源,请单击“显示高级视图”链接。选择Heights列表的辅助数据源,打开queryFields的节点以及该节点下面的节点,然后选择Height字段。
单击“值”文本框旁边的fx按钮,然后单击“插入字段或组”并选择主数据源的“高度”字段。
确定所有对话框。
添加另一条规则来查询数据。
选择高度列表中的辅助数据源。
添加另一条规则来设置字段的值。对于“字段”,选择要将查找值复制到其中的主数据源字段。对于“值”,选择辅助数据源并深入查看dataFields节点,直到看到字段名称。选择所需的字段,然后在所有对话框中单击“确定”。
规则面板现在看起来与此类似,但使用列名。
测试表格。在高度字段中输入有效高度,然后单击该字段。高度列表中的相应值将写入文本框。屏幕截图显示了背景中的SharePoint列表,突出显示了高亮显示的项目“66”。返回到InfoPath文本框“getV1”的值来自SharePoint列表的“V1”字段。
希望更清楚。