代码之家  ›  专栏  ›  技术社区  ›  Doliveras

允许用户设计表单及其字段

  •  0
  • Doliveras  · 技术社区  · 15 年前

    我正在开发一个应用程序,我想让用户设计一些表单,并决定表单中的字段。

    一个例子比一个糟糕的解释要好,所以让我举一个Microsoft CRM的例子,在这个例子中,您作为最终用户可以定义一个表单,该表单中的字段,或者通过添加或删除字段自定义现有表单。

    有什么标准方法可以做到这一点吗?,有人知道要使用的组件吗?或者在类似的功能中工作?

    任何看跌期权都会受到赞赏。

    5 回复  |  直到 15 年前
        1
  •  4
  •   Chris Judge    15 年前

    这不是一项微不足道的工作,有成千上万种方法可以实现这一点。这取决于许多因素,例如,您的用户是否能够“发布”他们创建的表单,用户是否可以更新他们的表单(带来表单和数据版本管理问题),您是否提供可视化设计器,您是否提供声明性设计语言,您希望如何将填充的数据存储到表单中,这些字段是由用户选择的R从有限的可用字段集合中提取,或者用户可以发明全新的字段等。

    在一个完整的电子表单包中,您本质上是创建一个用于表单创建的可视化IDE,以及一个“编译器”,它生成用户表单的可填充的运行时实现。为了使系统有用,您还必须包括管理功能(搜索、归档、导入、导出等)。

    如果你不想自己解决这些问题,有很多 eforms 外面的包裹。费用从免费到数万美元不等。

        2
  •  1
  •   cmaynard    15 年前

    这是一个非常复杂的问题,我将首先将它简化为一个更简单的用例,然后给出一个可能的设计方法。

    用例:

    • 用户希望使用 图形用户界面。许多字段(如姓名、电子邮件、 年龄)与输入相同。
    • 选项(文本字段、选择器、收音机 buttons)输出是用于 应用。
    • 用户选择已保存的XML表单以生成新的表单对象,或使用GUI选择要添加到中的新表单元素,提供表单名称和字段类型,如果选择器是有效的输入列表

    设计:

    • 提供一组标准的输入对象(文本字段、选择器列表等)作为对象。
    • 提供一个从对象开始的基,该对象是输入对象的容器,具有输入标签到输入对象的映射。
    • 提供一个单独的视图对象,用于处理窗体对象的表示(如在MVC的视图部分中)

    我认为最好的开始方法是构建一个可以解析标准HTML表单并在应用程序中创建和对象的软件。然后,您的图形用户界面将显示这一点。一旦你能够解析HTML表单,你就知道你有必要的字段和显示它们的能力,现在你只需要创建一个GUI,允许用户向表单对象添加元素。

    尽管如此,这不是一个简单的任务。在这类功能中,有很多输入、输出和输出。

        3
  •  0
  •   sindre j    15 年前

    我建议您创建一个表单布局生成器,它接受要显示的列的输入,以及编辑它们的控件类型。然后,它应该以严格的方式(使用流程面板或类似的东西)排列列。在数据库中动态创建列很容易。然后,用户可以在网格或类似网格中对要编辑的列进行特殊化,布局引擎然后根据用户指定的列创建表单。当然,与完全免费的图形用户界面设计器(如Visual Studio本身)相比,这限制了它们的可用性,但它也会使表单看起来非常整齐和对齐。所以总的来说,这是一个很好的折衷方案,比一个全面的图形用户界面设计师更容易实现。

        4
  •  -1
  •   DevByDefault    15 年前

    在我当前的项目中,通过存储每个用户的配置,我们允许用户自定义他们希望在搜索表单和结果网格中看到的字段。例如,用户A希望在表单X上看到P、Q、R,每个控件都有一个ID,配置值由ID存储。可能不是很优雅,但适用于较小的自定义。

        5
  •  -1
  •   George Mauer    15 年前

    正如大家所说,这是非常困难的,所以让我们看看标准。组成表单的标准是HTML。所以你:

    允许用户使用HTML或任何HTML设计器创建表单/字段。

    在应用程序中嵌入IE以呈现HTML。

    在他们的机器上旋转某种小型的Web服务器,它只接受来自此表单和此表单的请求(我认为ASP MVC中的一些东西在这里会有所帮助)

    当他们提交表单时,解析请求日志以查看字段和值。