我整天都在苦苦挣扎。我有一个Infopath表单连接到两个Sharepoint列表。
SP列表1(项目章程):
SP列表2(项目周刊):
我正在尝试将这两个列表合并到一个新表单上的1个重复表中。 每周标题字段与宪章标题字段具有相同的值,因此我可以使用标题进行匹配。我找到了一些资源,这是最好的:
http://www.infopathdev.com/forums/t/21262.aspx?PageIndex=2
最后有一个样本可以完全符合我的要求,但它不能用于我的设置。这是我得到的:
正如你在图片中看到的那样,"来自我的每周"列始终相同,这就是问题所在。它应该与左侧红色突出显示的相应字段匹配。这是计算字段中的公式:
Weekly_x0020_Opportunity[Weekly_x0020_Title = current()/Charter_x0020_Title]
逻辑是返回每周机会描述,其中每周标题与宪章标题匹配;但是,它只返回相同的描述。测试列用于证明 current()/ Charter_x0020_Title 正在为该行生成唯一标题。
我觉得我很亲密。第三个章程缺少描述,因为我的周刊没有第三个章程,所以这个工作正常。我只需要弄清楚如何引入正确的描述。
注意:我希望在没有编码的情况下提供开箱即用的解决方案。
完全xPATH
xdXDocument:GetDOM(" Project Weekly")/ dfs:myFields / dfs:dataFields / d:SharePointListItem_RW / d:Weekly_x0020_Opportunity [xdXDocument:GetDOM(" Project Weekly")/ dfs :myFields / dfs:dataFields / d:SharePointListItem_RW / d:Weekly_x0020_Title = current()/ d:Charter_x0020_Title]
答案 0 :(得分:1)
问题是谓词中的路径([]
之间)是使用绝对路径而不是相对路径。您需要使用相对路径。
这条路径(你现在拥有的):
xdXDocument:GetDOM("Project Weekly")
/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:Weekly_x0020_Opportunity
[xdXDocument:GetDOM("Project Weekly")/dfs:myFields/dfs:dataFields
/d:SharePointListItem_RW/d:Weekly_x0020_Title = current()/d:Charter_x0020_Title]
表示“获取第一个 1 每周机会字段,其中任何 每周标题字段位于项目周刊数据中source具有当前 Charter Title 的值。“
或者换句话说,只要方括号之间的内容为真,就可以在Project Weekly数据源中获取第一个每周机会字段。
此路径:
xdXDocument:GetDOM("Project Weekly")
/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW
[d:Weekly_x0020_Title = current()/d:Charter_x0020_Title]/d:Weekly_x0020_Opportunity
表示“查找第一个 1 SharePointListItem_RW ,其每周标题等于当前宪章标题,然后获得每周机会字段。“
这就是你应该使用的东西。
<小时/> 1 我在这里过分简单说“第一”。该路径选择该路径适用的所有节点,然后在InfoPath对其进行评估时,它将获取第一个结果。