2013-07-18 33 views
2

我正试图简化现有的Notes窗体,将其转换为XPage的应用程序。 Notes表单上有超过240个字段和一些我想要清理的逻辑。此外,该表格还具有各种显示格式,使其看起来很复杂。所以我一直试图写一个代理来获得FormA,并循环遍历所有的字段并将它们复制到FormB。然后,我将使用FormB将我的XPage绑定到并试图追踪数据问题会简单得多。如果FormA没有这么多的字段,我只会手动重新创建它,但我肯定有超过240个字段,我会介绍一些新的错字错误。将FormA复制到新窗体FormB

+0

您最好的选择可能是使用DXL。但你到目前为止尝试过什么?你说你一直在试图写一个代理人,但是你没有告诉我们你有多远。你有代码向我们展示以及关于它的任何具体问题吗? –

+1

我认为在大多数情况下,使用240个字段的表单并不是一个好主意。当没有可用的嵌入式视图时,它会像注释中的表单一样查找我3到4次,并且将一对多关系放入具有索引的字段中。 1到20.也许,重新设计是更好的方法。您不需要使用全部240个字段的表单将其用作XPage的数据容器。 –

+0

顺便说一句,你可能会感到惊讶的是,你的16个问题中的大部分都没有回答。这有两个原因。 **首先**,您必须标记XPages与标签'xpages'有关的问题,因为大多数XPages的专家都用该标签过滤问题。因此,通常用'xpages'标记的问题在两天之内会被60个人查看,而您的问题在一个月内只能看到10个或更少的人。如果'xpages'不适用于某个问题,则可以使用其他受欢迎的标签,例如'lotus-domino'或'lotus-notes'。 –

回答

1

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

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

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

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

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

2

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

如果要清理文档,代理可以甚至无需触摸表单即可完成此操作。

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

如果您从表单中删除一个字段,它将不会从相应的文档中删除,即使通过保存它们也不会删除。但是,如果向表单添加字段,保存后文档将为该字段指定一个项目(如果不使用代理手动将其删除,则永久保存)。

有了这些知识,您可以简单地创建一个新的“干净”的形式,与旧的名称相同,并重新命名旧的。从此时起,文档将与新窗体一起显示,您可以使用它作为数据源开发您的XPage。

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

下面是公式的例子把两个字段一起:

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