作者:小短腿Tel | 来源:互联网 | 2023-10-11 18:40
最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的h
在最近的项目中,由于不确定客户的需求等信息,为了降低今后的修改成本和普及产品,以前考虑的是动态表单技术,但在delphi中已经实现了。 因为我们采用的hibernate执行层,所以一个表需要一个VO。 这样,动态生成表后,就不能生成VO了。 到时候试试吧。 当小组讨论这个问题的时候,想到了这样的解决方法。 通过从横向向纵向改变数据的保存,实现了动态的数据保存。 让我介绍一下具体的方法。
(1)数据存储
众所周知,在传统的数据存储中,一个表由n个字段组成,每个字段都有他的特殊含义、数据类型等。 如下所示。
Student (表格)
ID (主键) int
Name (名称Varchar ) 10 ) ) )。
.
.
目前,采用的是纵向存储横向表的方法。 首先,在表定义的表(有点绕圈子)中,说明下表和数据字段的信息。
定义
tablenamefieldnamefieldnamecnfieldtype .
存储设备
“student‘’name‘’名称”字符
通过数据的说明,说明数据表的基本构成。 接下来,对数据存储表进行说明。 与数据定义表一样,添加存储值字段。
定义
tablenamefieldnamefieldnamecnfieldtypefieldvalue
存储设备
“student”“name”“名称”“文字”“无辜的大象”
这是基本的动态表单结构。 实际情况比这稍微复杂一些,有些需要词典相关信息(例如地区)。 基本结构就是这样的,这种存储方式可以动态存储数据,实现业务表的动态变化。
)2)数据查询
可以通过旋转水平表格和垂直排列的SQL语句来水平显示垂直存储的表格。 (请在网上找找看。 这样的例子非常多。 )另一个问题是,如果将其存储为词典编号,则必须显示值。 同样可以用SQL语句实现。
)3)数据显示
由于动态表单是动态创建的,因此可以通过将特殊参数传递给表单显示来提供数据列表和单表(更改样式)显示
今天先介绍到这里,后续的有显示模板的制作、检查等;