2

这是我的第一次堆栈溢出,而且很复杂。对不起。

我的任务是从基本模板和一些 XML 生成自定义文档,而无需为每种情况使用自定义表单设计元素。

这是整个图片

  • 我们正在为全球应用程序访问控制构建一个 Lotus Notes(客户端,而不是 Web)应用程序;范围类似于 400.000 个用户能够请求访问 1000 多个应用程序中的任何一个。每个应用程序都需要自己的请求表——不同数量的批准者,所需的各种信息,诸如此类。
  • 我们根本不可能在数据库中拥有一千个表单(每个应用程序一个),无论如何,它们的维护确实需要从开发人员推到应用程序所有者。
  • 因此,我们希望创建一个通用的“模板”表单,而不是自定义表单,它存储一个基本字段块,然后允许应用程序所有者动态定义另一个字段块——“我想要一个名为'Name' 在这里,然后是一个名为 'Due' 的日期字段,它必须晚于今天的日期,然后......”。我希望这是有道理的(如果没有,请将其视为通用问卷应用程序)。
  • 我几乎拥有设计动态字段的结构(表单构建器 GUI -> XML 编码数据 -> 用于注入表单的预渲染 DXL),包括字段类型、值选项和基本字段的标记验证说明。

我的问题是生成一个在适当位置注入此动态内容的文档(不需要为每个案例定制表单设计元素)。

  • 通过 HTML 处理动态内容已经过时了。Notes 客户端 Web 渲染实在是太差了,实现字段验证指令、日期选择器和名称查找等内容将是一个相当大的挑战。
  • 另一方面,DXL 将允许我们使用本机 Notes 字段和代码。
    • 作为一个技术演示,我设法实现了一个自定义表单生成器,它将动态内容的预渲染 DXL 注入到基本表单中;但正如我所说,我们不想要大量的自定义表单设计元素。
    • 我试图实现一种方法来创建一个设置了“在文档中存储表单”标志的文档,但是一旦我从基本表单创建了文档,我就无法获得对存储表单设计的 DXL 访问权限,并且所以我不能注入我的动态内容。

我知道这不是 Notes 本来打算做的事情。有没有人尝试过类似的事情(并且侥幸逃脱)?

感谢您阅读本文。

提前致以诚挚的谢意

扬·冈托夫特-布鲁恩

4

2 回答 2

1

我真的没有答案给你,但有一些想法:

我知道您提到该应用程序必须用于 Notes 客户端而不是 Web - 这是绝对的吗?Domino Web 应用程序可以让您更轻松地完成您需要的工作,而不是将其强制到 Notes 客户端中。(也许是一个混合应用程序 - 通过浏览器填写请求表单,但通过 Notes 客户端完成报告/工作流程?)

假设这是绝对的,那么我会重新考虑 DXL 选项 - 是的,您最终可能会在数据库中拥有 1,000 多个表单(或者,更好的是子表单),但这真的有问题吗?我不知道表格数量的上限(定义的或实际的)。而且,您不会手动“维护”这些(子)表单 - 您的代码只会检测对配置文档的更改,然后重建适当的表单注释。

为了限制设计元素的实际数量,也许您可​​以实现“模板”概念——因此您系统中的多个“应用程序”可以使用相同的访问请求“模板”。

于 2010-06-16T18:55:40.677 回答
0

我最终做的有点不同。

我仍然会使用“将表单存储在文档中”选项来确保每个提交的请求都可以独立存在;但是“请求”文档将基于成百上千个单独的表单(是的,那是数千个;研究和测试表明这不应该是性能问题)。然后,这些许多表格将以编程方式生成。

我正在设置它,以便“模板作者”可以创建“请求模板”,它们是带有 xml 块的普通文档。然后后台代理获取所有这些文档并将每个 xml 块和一个基本表单处理为新的自定义表单。这些自定义表单呈现给用户以创建他们的“请求”文档。

于 2010-06-23T08:28:39.637 回答