0

我正在修改现有的 Lotus 视图以包含另一个表单中的字段。

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

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

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

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

4

3 回答 3

1

不幸的是,Notes 视图没有(固有的)“加入”功能。如果您绝对需要在视图的同一行(文档)中出现不同的列,那么一种选择是对数据进行非规范化,这样在保存“文档 B”时,您可以使用必要的更新相关的“文档 A”字段值。(这也是让全文搜索跨“连接”数据工作的唯一真正方法)。

如果视图仅用于在浏览器上显示,那么您可能还有其他选择,例如进行 AJAX 调用以加载相关数据字段等。

于 2010-05-26T17:22:26.747 回答
0

这是添加多个表单的技巧。这样,您可以轻松地添加到允许的表单列表中,而无需大量 OR 语句。

@IsMember(Form; "A":"B") & StatusIndex < "06"

不过,我接下来要尝试的是摆脱视图中的所有条件并仅显示 Form =“B”,假设 B 表单具有您在步骤 1 中添加的字段。如果可行,那么您知道它只是视图选择公式的问题。

您还可以使用文档属性来检查文档项目。文件 > 文档 > 属性让您到达那里。我会三重检查出现在该视图中的文档是否确实在步骤 1 中包含该字段的一些数据。

最后,确保视图中列的可编程名称是唯一的。双击视图设计器中的列标题,然后单击最后一个选项卡(无檐小便帽)。那里的名称通常与您要在列中显示的字段相同,或者如果列值是公式,它将是一个 $number。为了安全起见,您可以将该名称更改为您知道唯一的名称。这里的理论是,如果该程序名称与另一列的程序名称匹配,则视图将不会评估列值,而是使用缓存值,在您的情况下可能是空白。这种情况很少见,但确实会发生。

于 2010-05-25T19:26:47.777 回答
0

Ken 提到了“多种形式”技巧的一个更简单的版本:

选择表格 = "A":"B" & StatusIndex < "06"

或者,如果您愿意:

选择 (Form = "A":"B") & StatusIndex < "06"

这个公式说: if (form = A or B) AND St​​atusIndex < "06"

注意:确保 StatusIndex 是文本(正如您引用的那样),并且带有值的字段 StatusIndex 包含在两个表单中。如果没有,您需要修复您的逻辑。

另外:文档按排序或时间顺序显示,一个到一行,因此您不能在一行中包含 A 和 B 数据。它可能看起来像:

A
A
A
B
B
B

或者

A
B
A
B
A
B
A

但从不

A & B
A & B
A & B
于 2010-08-17T15:52:30.560 回答