如何比较两个分隔字符串中的每个值?

时间:2014-10-06 00:10:41

标签: infopath infopath2010

我有两个字段,每个字段都有一个由分号分隔的字符串。 有没有办法将一个字符串中的每个值与另一个字符串中的每个值进行比较?

So if field one contains: String1;String2;String3
and field two contains: String4;String5;String6

then I would like to be able to compare String1 to String4 and String5 and String6
if String1 matches any of these values I would like it to return true. 

I also would need to compare Strings 2 and 3 to 4,5 and 6 in a similar manner.

我正在寻找一种不需要Visual Studio Tools for Applications(VSTA)的解决方案。

编辑:每个字段中的字符串数量随着从外部数据源填充而变化。

1 个答案:

答案 0 :(得分:1)

您需要至少五个辅助字段来存储要比较的文本。使用将这些辅助字段值设置为分号之间的文本的规则。您将需要Substring-before和Substring-after的组合。

规则

分割文本的规则:

  • 将helper1设置为substring-before(Field1, ";")
  • 将helper2设置为substring-before(Field2, ";")
  • 将helper3设置为substring-before(substring-after(Field2, ";"), ";")
  • 将helper4设置为substring-after(substring-after(Field2, ";"), ";")

然后运行三个规则来比较helper1和helper2 / 3/4

中的值

规则1

    如果helper1 = helper2 ,则运行
  • 设置helper5 = true

规则2

    如果helper1 = helper3 ,
  • 运行
  • 设置helper5 = true

规则3

    如果helper1 = helper4 ,则运行
  • 设置helper5 = true

辅助字段可以位于用于表单逻辑处理的辅助数据源中。