将FormS中的字段复制到表单B的新表单中

时间:2013-07-18 16:32:17

标签: xpages lotus-notes lotusscript

我正在尝试简化我转换为XPage的应用程序中的现有Notes表单。 Notes表单上有超过240个字段,还有一堆我要清理的逻辑。此外,表单具有各种显示格式,使查看复杂。所以我一直在尝试编写一个代理,它将获得FormA并遍历所有字段并将它们复制到FormB。然后,我将使用FormB绑定我的XPage,并尝试跟踪数据问题将更加简单。如果FormA没有那么多字段,我会手动重新创建它,但我确信有超过240个字段我会引入一些新的拼写错误。

2 个答案:

答案 0 :(得分:2)

您无需对表单执行任何操作即可为其创建XPage布局。 XPAges根本不需要表单,虽然它使开发更容易,因为在创建数据绑定之后,表单中的所有字段都可用,并且可以拖放到Xpage。必须在xpage的源代码中手动创建不在表单上的字段(例如,复制并粘贴现有的字段并更改绑定/名称)

如果要清理文档,代理可以在不触及表单的情况下执行此操作。

对于此任务,请考虑“表单”和“文档”之间的区别。 表单是定义文档外观的设计元素。 表单包含用于定义可以在文档中放入哪种数据类型的字段。 文档是项目(不是字段)的愚蠢“容器”。它包含在创建/上次保存文档时表单中存在的任何字段的项目。 PLUS以任何其他方式创建的项目(例如,使用公式或lotusscript代理)或在开发的早期阶段已经在表单上。

如果从表单中删除字段,则不会从相应的文档中删除该字段,即使保存它们也不会删除。但是,如果向表单添加字段,则保存后文档将包含该字段的项目(永远,如果不使用代理手动删除它)。

有了这些知识,您只需创建一个与旧名称相同的新“清洁”表单,并重命名旧表单。从此时起,文档将与新表单一起显示,您可以使用它作为数据源来开发XPage。

如果您需要在文档中累积数据,可以在不使用表单的情况下使用代理完成此操作:只需直接操作文档。

以下是将两个字段放在一起的公式中的示例:

FIELD NewFieldName := OldField_1 : OldField_2;
FIELD OldField_1 := @DeleteField;
FIELD OldField_2 := @DeleteField;

答案 1 :(得分:1)

我认为,在大多数情况下,拥有240个字段的表单并不是一个好主意。当没有嵌入的视图可用时,它会像旧的Notes 3或4次一样找到我,并且将一对多的关系放入具有索引的字段中,例如1至20.

也许,重新设计是一种更好的方法。

此外,您无需创建和维护包含所有240个字段的表单来开发XPage。实际上,你根本不需要表格。使用基于“Domino Document”的数据源定义,您可以定义表单名称以及要创建新文档或查找现有文档的方式。而已。然后,您可以在XPage中创建字段。给他们一个名字和类型。您可以在Designer UI中执行此操作。只需将新字段名写入“绑定到”选定的“数据源”即可。在“显示类型”中选择字段类型(字符串,数字,日期/时间)。这不仅对显示有效,而且还将字段保存为文档的选定类型。在此示例中,它将创建一个新字段“YourNewField”,并将其保存为整数。 enter image description here

提交页面时,将在文档中创建或设置所有字段。您可以使用文档属性框检查Notes客户端中的字段及其类型。

一个好方法是创建具有最重要字段的表单。然后,您可以在Notes客户端中打开文档,并检查XPage设置的字段。