如何从第二个表单添加字段?

时间:2010-05-25 17:28:18

标签: lotus-notes lotus lotus-formula

我正在修改现有的Lotus视图以包含来自其他表单的字段。

  1. 我首先添加了一个新列并将其设置为所需的字段。但是,在我刷新后,即使我知道它有数据,新列也是空白的。

  2. 然后我更新了视图选择公式:

  3. 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";  
    

    这提出了另一个问题:这些表/表格之间的关系定义在哪里?

3 个答案:

答案 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 St​​atusIndex&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
相关问题