2012-05-19 38 views
1

我有两种相关的表单,我会将它们组合到一个视图控件中。没那么难。这是针对“1对多”类型的情况。如何按查找列对查看控件进行排序

假设我有一个客户视图,其中包含customerID和CustomerName列。然后我有一个视图,显示具有列masterCustomerID,orderNumber,orderDate的“许多”文档。

在XPage上,我创建了许多文档的视图控件,并添加了列masterCustomerID,orderNumber,orderDate。然后我在前面添加一个专栏来做一个DbLookup来提取客户的实际名称。真的没有太想象。

我的问题是,在这种情况下,查找列是第一列。根据该列对视图列进行排序的策略是什么?默认情况下,它将按顺序视图中的键值进行排序,这可能与名称值不同。

我不反对使用重复控件,如果这会更容易。

我首先想到的是以某种方式使用TreeMaps,但我不知道在可能有很多文档的情况下这是否可行。也许有什么我失踪...

任何意见,将不胜感激。谢谢

+0

如果您希望它们按名称排序,您的视图必须首先按名称排序。然后查找其余的值(订单)。 –

+0

我认为问题在于视图按customerID排序,并且他想按customerName对其进行排序,但客户名称在订单文档(仅限customerID)中不可用。我可以想出两种方法来解决这个问题:(1)处理来自大视图的所有文档,解析customerID,将其存储在TreeMap中,并将结果绑定到数据表/重复(可能会导致性能问题)(2)将客户名称存储在订单文档中。顺便说一句:你应该实现一个缓存机制来存储客户名称后,你看了他们:会给你更好的性能。 –

+0

认真:将客户名称多余存储在许多文档中(毕竟它是Notes ;-))。然后在人员文档的查询中查找一些代码,检查名称是否被更改并启动更新代理。伪关系方法会杀死你的表现 – stwissel

回答

0

使用视图(客户名称,客户ID)结构作为主视图。然后基于客户ID通过查看结构(客户ID,订单ID,订单日期)查看其他列。因此它是1:N的关系,你不能使用单个视图组件,但是两个嵌套 - 重复在视图内部列会做。

我希望您了解性能影响(每个客户行都会查看订单),所以不要试图一次显示太多客户。

相关问题