从基本形式和XML生成自定义表单文档?

时间:2010-06-16 10:54:16

标签: xml lotus-notes lotus-domino

这是我的第一个堆栈溢出,而且它是一个复杂的溢出。遗憾。

我的任务是从基本模板和一些XML 生成自定义文档,而每个案例都有自定义表单设计元素。

这是整个图片

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

我的问题正在生成一个文档,其中包含在适当位置注入的动态内容(不需要为每个案例设置自定义表单设计元素)。

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

我知道这不是Notes曾经打算做的事情。 有没有人尝试过这样的东西(并且已经离开了它)?

感谢您阅读此内容。

提前感谢 boatload

Jan Gundtofte-Bruun

2 个答案:

答案 0 :(得分:1)

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

我知道你提到应用程序必须是Notes客户端而不是web - 这是绝对的吗? Domino Web应用程序可以灵活地执行您所需的操作,而不是将其强制插入Notes客户端。 (也许是混合应用程序 - 请求表单通过浏览器填写,但报告/工作流程是通过Notes客户端完成的?)

假设这是绝对的,那么我会重新审视DXL选项 - 是的,你最终可能会在数据库中使用1,000多种形式(或更好的子表单),但这真的是一个问题吗?我不知道表格数量的任何上限(定义或实际)。而且,您不会手动“维护”这些(子)表单 - 您的代码只会检测配置文档的更改,然后重新生成相应的表单注释。

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

答案 1 :(得分:0)

我最后做的有点不同了。

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

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