最近项目的用户,提出一个棘手的需求。因业务变化不定,导入的EXCEL格式表头不是固定的,用户希望系统能兼容所有格式,并且对导入数据进行展示与分析,最后导出报表。用户原文:适应表单数据灵活变化,根据客户需要制作表单。
需求可以分解为:
1、用户无法固定待导入表单;如A表表头为A1、A2、A3…… 而B表表头为B1、B2、B3……
2、用户需要将动态表单导入到系统中处理;
3、用户需要将处理之后的数据根据动态格式导出;
该需求棘手的地方有两点:
1、oracle、sqlserver等常用数据库表头字段是固定的,无法直接根据动态业务数据建表;
2、导出的数据受到导入数据的影响,也是动态格式,无法预先指定;
针对该需求,兄弟们集体发动脑细胞,给出了三种解决方案:
1、使用[非关系型]数据库,如MongoDB,动态建表; 优点:无缝实现动态建表需求; 缺点:属于新技术,组内木有专业[非关系型DBA](自创名词);需耗时研究其部署、集成方式;风险较大;
2、程序动态建表。导入之前,在java后台获取表单格式,用后台代码建表。建表信息由一个固定数据表进行管理维护; 优点:任何格式都可以导入;操作数据方便; 缺点:表的数量无法预知,会大量创建动态表; 不方便跨表统计;
3、将表单拆分为:1、表头属性;2、表单模板;3、数据存储。 模板里面存入一般性的固定信息如批次号、客户名称、债项开始日期、债项截止日期、信访地址等; 属性中抽象出一些一般化的信息如属性编码(保证唯一性)、属性名称、显示类型(只读文本、输入框、下列框、)、输入类型(数字、字符串、日期)等。属性由模板动态组织、包装起来,根据动态格式生成表单或者导出表单; 数据存储表中存入与指定模板下某属性对应的值,该表的字段为:模板外键、属性外键、属性编码、属性值等。 优点:可以实现导入动态格式的需求; 最终数据存于数据表中,方便统计与版本控制; 缺点:数据存储表的记录随业务量增大而迅速增大;
综合考虑下,因用户业务量较小(月平均几百单),最终敲定了第三种方案。
如各位看官对该方案有建议,欢迎拍砖,咱们一起探讨优化方案。
分享到:
相关推荐
总结来说,Vue+Iview的动态表单方案充分利用了Vue的数据驱动特性和Iview的组件化优势,实现了高度定制化和灵活的表单设计。开发者可以通过学习和掌握这些知识点,提升Web应用的用户体验和开发效率。在实际项目中,...
综上所述,基于SSH框架的动态表单设计与实现,不仅解决了传统B/S模式下表单操作的局限性,还提供了灵活、安全、快速的解决方案。通过整合Struts、Hibernate和Spring三个框架,可以构建出既符合企业级应用标准,又能...
本文讨论了基于Infopath实现Web动态表单的过程,以及在实现中遇到的一些问题和解决方案。首先,Infopath虽然功能强大,支持Web Services等技术,但其在某些方面存在限制,比如不能在非Infopath程序中填写表单,与...
总结起来,实现“表单的动态填写打印(含有动态表格)”这一任务,可以利用Word的交互式表单和VBA编程,FreeSpire的PDF编辑功能,以及各种Pdf处理库的API。通过这些工具和技术,不仅可以创建动态的表格,还能灵活地...
总之,“Vue ~ element-ui 动态表单验证”项目展示了如何利用Vue.js和Element-UI的强大功能,结合动态表单和验证规则,实现一个灵活且功能丰富的后台表单系统。通过掌握这些技术,开发者可以更高效地处理各种表单...
"基于element组件库封装的动态表单组件"就是这样一个解决方案,它针对Vue3进行了优化,旨在帮助开发者更方便地创建和管理动态表单。 动态表单是一种能够根据数据结构自动生成表单的组件,通常用于处理复杂的表单...
本文将深入探讨如何基于React实现动态配置表单,并提供相关资源和实践方法。 首先,理解React动态表单的核心概念是至关重要的。React作为一个声明式JavaScript库,它的组件化思想使得构建动态表单变得可能。动态...
该方案以表单的动态定制为核心, 建立了以平台为载体的动态表单定制体系架构, 基于XML实现了表单的动态生成、显示可定制和查询可定制, 满足了企业对表单动态定制的要求。通过在供应链协同平台中的应用, 验证了该定制...
"根据配置动态生成有验证的表单"这一技术主题,结合使用了iview框架和async-validator库,旨在创建灵活、可配置的表单验证解决方案。 **1. iview框架** iview是一个基于Vue.js的UI组件库,提供了丰富的前端组件,...
在这个"动态表单组件"项目中,开发者利用React Hooks和antd的Form组件进行了二次封装,创建了一个高效且功能强大的表单解决方案。 1. **React Hooks**: React Hooks是React 16.8版本引入的一个新特性,允许我们在...
3. **工作流与表单的松耦合**:实现自定义表单与工作流的有效结合,提高系统的适应性。 #### 八、分层建模方法 1. **数据层**:负责数据的存储与检索。 2. **业务层**:实现业务逻辑处理。 3. **表现层**:提供...
标题提到的“极好的表单验证方案”提供了一种高效、实用的方法,避免了传统的逐个通过JavaScript进行验证的繁琐过程。 在Web应用中,表单验证通常分为客户端验证和服务器端验证两部分。客户端验证利用JavaScript或...
在动态表单验证领域,jQuery提供了一个强大且易于使用的解决方案,即`jquery.validationEngine.js`。这个插件提供了丰富的验证规则和友好的提示样式,使得创建交互式的表单验证变得简单。 首先,我们需要引入jQuery...
4. **form-create** - 这是一个灵活的表单生成组件,可生成具有动态渲染、数据收集、验证和提交功能的表单。它支持ElementUI、Iview/View-design和Ant-design-vue,同时支持自定义Vue组件,使得处理复杂表单变得简单...
通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和...
如果有更好的实现方案或建议,也欢迎大家提出交流。 通过以上知识点的阐述,我们可以看到在实现动态表单校验时,需要综合考虑前端框架的使用、组件的属性绑定、数据驱动的逻辑处理以及用户交互设计等多个方面。这些...
VC++的电子表单解决方案的运行速度是...E-Form++的电子表单解决方案将是最佳的选择,至少为您节省50-80%的开发工作,E-Form++电子表单是目前全球唯一高品质完全基于C++电子表单 源代码解决方案。 下载 专业电子表单方案
这款解决方案的核心是它的表单设计器和表单渲染器,两者协同工作,使得开发者无需编写大量代码即可创建出复杂且功能丰富的用户界面。下面我们将深入探讨这个工具的各个方面。 首先,Vue 3作为框架的基础,提供了...
2. **AJAX**:为了实现异步数据交互,动态表单可能会用到AJAX技术,使得在不刷新整个页面的情况下,从服务器获取或提交数据。这可以提高应用的响应速度和用户体验。 3. **JSON**:后端生成的动态表单结构通常以JSON...
React UForm则弥补了这一不足,它提供了丰富的表单控件和API,帮助开发者轻松管理表单状态,实现动态表单、复杂验证等功能。 ### 2. UForm的核心特性 #### (1) 声明式表单设计 UForm采用声明式编程方式,允许...