我正在修改现有的Lotus视图以包含来自其他表单的字段。
我首先添加了一个新列并将其设置为所需的字段。但是,在我刷新后,即使我知道它有数据,新列也是空白的。
然后我更新了视图选择公式:
SELECT Form = "A" & StatusIndex < "06"
于:
SELECT (Form = "A"| Form = "B") & StatusIndex < "06"
仍然没有运气。视图已成功刷新,但新字段仍为空白。还有什么可以将此新列添加到此视图中?
这是我第一次尝试Lotus,所以如果我似乎缺少一些主要概念,我可能就是。
如果我使用SQL提取此数据,则该语句可能类似于:
Select A.* , B.*
from A inner join B on A.id=B.id
where A.StatusIndex < "06";
这提出了另一个问题:这些表/表格之间的关系定义在哪里?
答案 0 :(得分:1)
不幸的是,Notes视图中没有(内在)“连接”功能。如果您绝对需要在视图中出现在同一行(文档)中的不同列,则一个选项是对数据进行反规范化,以便在保存“文档B”时更新相关的“文档A”以及必要的字段值。 (这也是使全文搜索能够在“联合”数据中工作的唯一真正方法。)
如果视图仅用于在浏览器上显示,那么您可能还有其他选项,例如进行AJAX调用以加载相关数据字段等。
答案 1 :(得分:0)
这是添加多个表单的技巧。这样,您可以轻松地添加到允许的表单列表,而无需大量的OR语句。
@IsMember(表格;“A”:“B”)&amp; StatusIndex&lt; “06”
接下来我要尝试的是摆脱视图中的所有条件,只显示Form =“B”,假设B形式具有您在步骤1中添加的字段。如果有效,那么您知道这只是视图选择公式的一个问题。
您还可以使用“文档属性”检查文档项目。文件&gt;文件&gt;属性让你在那里。我会三重检查该视图中出现的文档实际上是否在步骤1中为该字段提供了一些数据。
最后,确保视图中列的可编程名称是唯一的。双击视图设计器中的列标题,然后单击最后一个选项卡(beanie hat)。其中的名称通常与您要在列中显示的字段相同,如果列值是公式,则它将是$ number。为了安全起见,您可以将该名称更改为您知道的唯一名称。这里的理论是,如果该编程名称与另一列的编程名称匹配,那么视图将不会评估列值,而是使用缓存值,在您的情况下可能是空白。这种情况很少见,但确实发生了。
答案 2 :(得分:0)
Ken提到了一个更简单的“多重形式”技巧:
选择表格=“A”:“B”&amp; StatusIndex&lt; “06”
或者如果您愿意:
选择(表格=“A”:“B”)&amp; StatusIndex&lt; “06”
这个公式说:if(form = A或B)AND StatusIndex&lt; “06”
注意:确保StatusIndex是Text(正如您所引用的),并且两个表单中都包含带有值的字段StatusIndex。如果没有,你需要修复你的逻辑。
Plus:文档按照排序或按时间顺序显示,一行显示一行,因此您无法使用A&amp; B数据在一行上。它可能看起来像:
A
A
A
B
B
B
OR
A
B
A
B
A
B
A
但永远不会
A & B
A & B
A & B