我正在开发一个应用程序,我想让用户设计一些表单并决定表单中的字段。
一个例子比一个糟糕的解释更好,所以让我举一个Microsoft CRM的例子,你作为最终用户可以通过添加或删除字段来定义表单,表单中的字段或自定义现有表单。
有没有一些标准方法可以做到这一点?,任何人都知道要使用的组件?或者使用类似的功能?
任何看法都会受到赞赏。
答案 0 :(得分:4)
这不是一项微不足道的工作,有数千种方法可以实现这一目标。这取决于许多因素 - 例如您的用户是否能够“发布”他们创建的表单,用户是否可以更新他们的表单(带来表单和数据版本管理问题),您是否会提供可视化设计器,您是否会提供声明性设计语言,您如何想要存储填充到表单中的数据,是用户从有限的可用字段集中选择的字段,还是用户可以创建全新的字段等。
在一个完整的电子表单包中,您实际上是创建一个用于表单创建的可视IDE以及一个“编译器”,它可以生成用户表单的可填充的运行时实现。为了使系统有用,您还必须包括管理功能(搜索,归档,导入,导出等)。
如果您不想自己解决这些问题,那么有很多eforms个软件包。成本从免费到数万美元不等。
答案 1 :(得分:1)
这是一个非常复杂的问题,我将首先将其简化为更简单的用例,然后给出一种可能的设计方法。
使用案例:
设计:
我认为从这开始的最好方法是构建一个解析标准html表单并在应用程序中创建和对象的软件。然后由GUI显示。一旦你可以解析html表单,你知道你有所需的字段和显示它们的能力,现在你只需要创建一个gui来允许用户将元素添加到表单对象。
所有这一切,这不是一项简单的任务。在这种功能中有很多ins,很多出局,很多有什么东西。
答案 2 :(得分:0)
我建议您创建一个表单布局生成器,它将输入要显示的列,以及用于编辑它们的控件类型。然后它应该以有序的方式排列列(使用流动板或类似的东西)。可以轻松地在数据库中动态创建列。然后,用户可以在网格或类似的内容中编辑他们想要编辑的列,然后布局引擎从用户指定的列创建表单。当然,与完全免费的gui设计师(如视觉工作室本身)相比,这限制了可能性,但它也会使形式看起来很棒且很好地对齐。总而言之,这是一个很好的权衡,而且比一个完全成熟的gui设计师更容易实现。
答案 3 :(得分:-1)
在我当前的项目中,我们让用户通过存储每个用户配置来自定义他们想要在搜索表单和结果网格中看到的字段。例如,用户A希望在表单X上看到P,Q,R,每个控件都有一个Id,配置值由Id存储。可能不是很优雅,但适用于小型定制。
答案 4 :(得分:-1)
正如大家所说,这非常困难所以让我们看看标准。组成表单的标准是HTML。所以你:
让用户使用html或任何HTML设计器创建表单/字段。
在您的应用程序中嵌入IE以呈现html。
在他们的机器上旋转某种微小的网络服务器,只接受来自此表单和此表单的请求(我认为ASP MVC中的一些内容在这里会有所帮助)
当他们提交表单时,会解析“请求发布”以查看字段和值。