Xpages,使用@Unique在视图面板中继承的文档

时间:2014-11-25 00:35:32

标签: xpages

我有两个表单项目(文档)和注释(响应响应)我想创建一个显示所选项目的所有注释的视图

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我喜欢在xPages中使用这种类型的东西。

暂时不要考虑项目和响应。想想uniqueID。为了使项目文档引用注释,您需要为每个注释添加一个唯一的ID,以便相互引用。不要在xPages中使用响应文档,我没有必要看。保存注释时,通过引用此值将父文档的唯一ID保存到注释文档的字段中,其中document1是父项的数据源,document3是子项的文档。

   <xp:modifyField name="uid"
        value="#{javascript:document1.getDocument().getUniversalID()}" 
        var="document3">
    </xp:modifyField>

现在您拥有一堆父级和子级文档,您可以创建一个分类视图,其中您只捕获注释。使用视图选择公式排除父窗体。使第一列成为您之前捕获的唯一ID。您现在拥有一个视图,该视图将保留按父项的唯一ID分类的所有注释。

View Categorized by UID

现在在xpage中,您现在需要过滤键值。您可以通过计算父文档值的键来进行过滤。这里document1是父。

 <xp:dominoView var="view2" viewName="rejections"
        keys="#{javascript:document1.getDocument().getUniversalID()}">
    </xp:dominoView>

这样做的好处是它可以在viewPanel,dataView或重复控件中工作,因为你引用的是数据而不是UI。

如果你想做评论评论,有几种方法,但我认为它们都有相同的结构。如果你做到这一点,开始看重复控件,它们将让你摆脱正常的音符视图。

答案 1 :(得分:1)

我几年前没有在Notes中使用Parent和响应文档,因为它们太麻烦了。出于若干原因,我还使用UNID作为“链接”而离开了。第一个是UNID可以更改(解决保存/代理冲突)第二个归档几乎不可能,因为当文档被复制到另一个DB时,UNID也会发生变化。因此,当我创建一个“父”文档时,我将@Unique存储到一个字段中,我将其称为LinkKey,并将该值存储在所有“响应”文档中。当我创建响应时,我将一个新的@Unique存储到字段rLinkKey中。这样,对响应的响应就知道它的发起者(LinkKey)和它的直接父(rLinKey)。现在,您可以非常轻松地扩展任意数量的级别。 这在原生笔记中运行良好,有一些kludge,但现在在带有重复控件的XPage中,真正的力量来自嵌套的重复控制。我一直想在Notes中做的事情,但从来没有能够成为一块蛋糕。 缺点是getDocumentByUNID()将比getDocumentByKey(LinkKey,true)更快,但其他优势远远超出了不明显的时差(恕我直言)