我想知道我是否可以单击XPage中的按钮并动态创建Domino视图,然后在同一页面的面板控件中显示它。我想这样做的原因是因为我有一个分类视图,我不想通过全文搜索丢失类别数据。所以我想动态创建一个新视图,并将我的搜索参数(如结束日期或开始日期)传递给视图选择公式。
有可能吗?任何其他替代解决方案也是受欢迎的。
答案 0 :(得分:4)
是的,你可以,但你不想。 Domino视图占用数据库中的空间,并且在第一次使用时需要相当长的时间。因此,您最终需要占用大量空间,并且需要在删除后调整数据库空间。你的回复时间会很长。
Notes视图中显示的类别为no web interaction pattern,因此您可能希望解决实际上不存在的问题。
Domino应用程序的首选方法是通过搜索进行导航/向下钻取。但是,您可以执行FTSearch,将类别添加到搜索参数,并将结果呈现在重复控件中,而不是视图控件。在那里你可以更好地控制外观。
答案 1 :(得分:3)
无论它是否是最佳解决方案,关于即时创建视图的直接问题的答案是肯定的:数据库类有一对" createView"允许您创建新视图的方法,完全从头开始或基于命名的其他视图。从那里,您可以使用" setSelectionFormula"和" createColumn"创建视图中的方法来构建您想要的内容。你不能用这些方法做所有事情,但这可能就足够了。
您可能遇到的一个问题是ACL访问:您需要设计师对数据库的权限,这是普通用户最不可能拥有的。如果您使用sessionAsSigner对象来获取数据库的签名者版本(例如," var signerDB = sessionAsSigner.getDatabase(database.getServer(),database.getFilePath())"),您可以从那里。在我的头脑中,我不记得你是否还必须提高"最大的互联网接入"也可以在ACL的最后一个选项卡上设置,但也可以。
答案 2 :(得分:1)
我假设您指的是根据类别选择文档时存在的问题。这是我觉得非常烦人的事情,我希望可以打开和关闭它。它对于嵌入式视图是有意义的,但对于其他许多视图都没有。
我要解决的问题是在下一栏中包含类别值。通过这种方式,即使是平面视图,仍然可以看到文本。
或者,您也可以考虑使用转发器控件并创建自己的方式来呈现信息。这将用于代替(动态)ViewPanel控件。然后,只要在viewrow集中返回,您就可以以任何方式呈现信息。
快乐编程!