我需要开发一种功能,用户可以动态定义模板(标签,文本框,标签,行,列,上述元素之间的父子关系等)。这些元素(例如组合框)可以绑定到不同的数据库表。
例如,用户可以为特定用例U1定义模板T1。但是此模板不仅限于U1。可能需要在另一个用例U2中使用它,它是更大模板的子部分。
定义模板后,另一个用户可以加载模板(HTML表单)并在其中输入数据。在稍后阶段,我需要重复使用此数据和模板来生成PDF报告。由于PDF报告有时可能需要与HTML表单不同的布局,因此我还需要元素之间的父子关系。
截至目前,我们通过从用户界面生成XML来实现,用户可以从下拉列表中选择元素并指定属性。在运行时,使用XSLT将这些XML转换为HTML。另一个XSLT用于生成PDF。此方案的局限性在于,合并任何用户请求(例如多列,将表格添加到表单等)非常繁琐。
我想知道其他人是如何实现这一点的,并且有一个API /库可以做同样的事情吗? 我已经看过HTML5和JQuery拖放功能,但它需要我从头开始添加所有内容(例如动态添加列,行等)。
答案 0 :(得分:4)
创建动态表单最好的方法是使用角度js。 这是前端开发的非常好的框架
这是工作链接
angular js form
抱歉,我只给出了动态表单示例,这里有一些拖放示例
Angular drag and drop 1
http://angular-js.in/dragular/
我希望这会有所帮助。
答案 1 :(得分:3)
有用于处理数据库的库,例如JDAL,jOOQ和许多其他库。
但是,对于创建表单和报表,Oracle确实拥有Oracle Forms and Reports套件。还有一些替代品,比如OpenXava,也可以做这些事情(可能更好,我曾经使用过10g / 11,有时可能会很痛苦)。如果您对使用XML和其他标记语言更感兴趣,可能需要FOXopen。
所有这些都可以输出到PDF和其他类型的文档。
在我工作的地方,我们使用Oracle Forms和内部编写的程序来编写报告。