表单格式

目录

概述    2

表单映射    3

方式1    3

方式2    3

表单创建    5

主子表单    5

计算字段    6

选项级联填充    7

概述

这里所说的表单与数据库中的表与UI中的数据窗体是不同的概念

数据库中的表提供了数据结构的描述,数格式的基本验证,同时提供了数据的物理存储.

UI中的数据窗体提供了数据的UI具体风格展现,有可能同时在代码中对数格式验证与业务逻辑做出控制.

而我说的表单提供了详细数据结构的描述,完整的数格式验证,具体的UI展现描述,完整的业务逻辑关系,以及业务权限

举例子说明一下:

1.在数据库中的表中只能描述某个字段是必填还是可空,在表单中对这个字段的描述是[什么身份在那个业务的那个步骤对这个字段是必填的]

2.在UI中的数据窗体中,某个字段被描述为文本框或下拉框.而在表单中,对数据展现的描述是X,Y,Z,Width,Height,UIType等.并且数据可以拥有多套不同的展现,在[什么身份在那个业务的那个步骤对这个字段是故什么时该展现成什么样子]也有描述.

表单的展现不依赖具体的UI技术,表单会提供UI展现器,用以动太的将数据展现成Html,WinForm,Asp.net,WPF,Silverlight等UI.

表单映射

表单不提数据的物理存储功能,表单需要将自身映射到数据库的物理表中.通常会用如下两种方式映射

方式1

表单A

rowID

A

B

C

001

a1

b1

c1

002

a2

b2

c2

映射->

表A

rowID

A

B

C

001

a1

b1

c1

002

a2

b2

c2

表单B

rowID

X

Y

Z

001

x1

y1

z1

002

x2

y2

z2

映射->

表单B

rowID

X

Y

Z

001

x1

y1

z1

002

x2

y2

z2

方式2

表单A

rowID

A

B

C

001

a1

b1

c1

002

a2

b2

c2

映射->

表单名

行编号

字段名

字段值

表单A

001

A

a1

表单A

001

B

b1

表单A

001

C

c1

表单A

002

A

a2

表单A

002

B

b2

表单A

002

C

c2

表单B

001

X

x1

表单B

001

Y

y1

表单B

001

Z

z1

表单B

002

X

x2

表单B

002

Y

y2

表单B

002

Z

z2

表单B

rowID

X

Y

Z

001

x1

y1

z1

002

x2

y2

z2

注意,上面的描述只是数据结构的抽象,实际上为了提高查询效率,我对结构做了调整,不过原理就是这样

在我以前的三个版本的工作流中只提供了[方式2]的表单模式,[方式1]需要自已去实现,本版本两种方式都提供了,并且将[方式2]作为默认模式,

原因如下,企业应用发展到现在,很多企业已拥有了上为了上为很多业务系统,如果为了上工作流平台,将原有的系统废除重做是得不偿失的.所以本次平台升级提供了将流程真接映射到其他业务系统业务表的功能.如果原系统的数据UI名称与数据库表的字段名称一致的话,你甚至可以直接用原系统的页面运行流程,注意,要使用该功能需要做如下设置:

注意,光这样是不行的,你还得在原系统中添加一个控制接口

事实上,在设计这个平台之初就考虑了与其他系统的集成,如果你已经有了一个人力资源系统,你就不需要在本系统中重建组织机构,可以设置映射从人力资源系统同步数据,你可以选择单向或双向同步

表单创建

表单支持基于表生成,同时也支持基于表单生成表

主子表单

表单可以来自一张表,也可以来自多张表,同一张表可以有多个表单.

表单支持一对多,一对一的主子表单

表单A1

rowID

A

B

001

a1

b1

002

a2

b2

映射->

表A

rowID

A

B

C

001

a1

b1

c1

002

a2

b2

c2

表单A2

rowID

C

001

c1

002

c2

表单A

rowID

A

B

001

a1

b1

002

a2

b2

表单A-Item

A

Item

a1

123

a1

456

a2

789

映射->

表A

rowID

A

B

C

001

a1

b1

c1

002

a2

b2

c2

表A-Item

A

Item

a1

123

a1

456

a2

789

计算字段

表单支持计算字段:

方式1

rowID

A

B

c

X

Y

001

1

2

3

6

2

A+B+C

(B-A)*2

002

4

5

6

16

3

A+B+C +1

(B-A)*2 +1

方式2

rowID

X

Y

001

6

2

A+B+C

(B-A)*2

002

16

3

A+B+C +1

(B-A)*2 +1

rowID

key

value

001

A

1

001

B

2

001

C

3

002

A

4

002

B

5

002

C

6

每行的同一字段可以具有不同的的公式,公式可在运行时动态选择与修改,[方式1]的公式只能用(A,B,C)构建,[方式2]的公式可以任意添加参数.

选项级联填充

假设有如下数据

faultCategory

faultCategoryNo

A

001

A

002

B

003

B

004

faultCategoryNo

faultPlansName

001

1234

001

abcd

002

5678

002

efgi

需要如下效果

注意:选项级联填充,支持无限的链式传递,但不支持多触发,也就是当在A下拉框选择了某项后,A,C下拉框选根据不同的设置分别加载选择项.

要实现这个功能并没什么难度,只是当时设计时将这程需求忘了,现在要加上需要将触发目标由属性升级成集合.现在这个个模块级基本定版,我正在开发其他模块.所以这个功能就以后升级吧

基于WF4的新平台-表单格式相关推荐

  1. 基于WF4的新平台-流程模式-(9)表单路由启动传入

    平台所支持的流程模式-(9)表单路由启动传入 目录 表单路由启动传入    2 流程图例    2 流程设计    3 流程信息    5 流程测试    6 查看运行信息    7 表单路由启动传入 ...

  2. 基于WF4的新平台-流程模式-(6)动态串行

    平台所支持的流程模式-(6)动态串行 目录 动态串行    2 流程图例    2 流程设计    3 流程信息    5 流程测试    6 查看运行信息    10 动态串行 说明   例子路径 ...

  3. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...

  4. 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm

    开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm 10.4Validform对象[方法支持链式调用] 如示例 var demo=$(".formsub" ...

  5. 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm

    开发指南专题九:JEECG微云快速开发平台表单校验组件ValidForm 10.表单校验组件ValidForm 10.1使用入门 1.引入css 请查看下载文件中的style.css,把里面Valid ...

  6. 平台表单默认按钮的使用及效果展示——JEPLUS软件快速开发平台

    为什么80%的码农都做不了架构师?>>>                                  JEPLUS平台表单默认按钮的使用及效果展示 系统开发过程中会有许多按钮的 ...

  7. django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单

    使用基于类的视图处理表单 表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己 ...

  8. 推荐使用什么样的平台表单制作工具好?

    在办公自动化迅猛发展的今天,传统的表单制作工具已经不能满足各行各业的生产需求,引用专业的低代码开发平台表单制作工具可以助力企业提高作业协作效率.那么,什么平台的表单制作工具可以实现这一目的?今天,我们 ...

  9. html5新特性表单控件,老生常谈h5新特性1:(表单)

    老生常谈h5新特性1:(表单) HTML5新特性 -- 十大新特性 (1)新的语义标签和属性 (2)表单新特性 (3)视频和音频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖放A ...

最新文章

  1. redis内部分享ppt
  2. UVA - 1533Moving Pegs移动小球 (bfs加状态压缩)
  3. StackOverflow 上面最流行的 7 个 Java 问题!| 值得一看
  4. SprintBoot中JPA的使用
  5. vb6 设计模式 mscomm该部件的许可证信息没有找到_廊坊人脸识别系统报价,塔机黑匣子,供求信息...
  6. MongoDB,凉凉?
  7. 如何在Python中建立和训练K最近邻和K-Means集群ML模型
  8. java怎么获取ie浏览器的cookie,IE8 浏览器Cookie的处理
  9. el-select下拉框组件el-option如何使用v-for动态渲染问题 - 方法篇
  10. 山西铁警演练防暴处突
  11. ASP.Net缓存总结
  12. 新闻丨智链万源受邀参加世界动物福利科学大会
  13. 畅捷教育系统服务器,畅捷教育云平台使用手册一、学生操作流程图-畅捷通.PDF...
  14. (四)keycloak 自定义用户(SPI)开发
  15. 一个未完毕创业项目的思考——创业杂记
  16. 嵌入式要学习哪些内容?
  17. Anaconda Navigator启动缓慢
  18. 极客时间——数据结构与算法(39) 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想
  19. 关于玩只狼时,解决 游戏画面只在屏幕左上角四分之一显示 的问题 !!!!
  20. 盘点男士们也喜爱的八大女性APP

热门文章

  1. 技术项目 - Linux Swap
  2. 五种常见的PHP设计模式
  3. Struts+Spring+Hibernate练习(完整)(1)
  4. 写在2018-我的技术之路汇总前言
  5. redux源码分析之一:createStore.js
  6. 大学录取通知书也越来越科技范儿
  7. iOS SDWEBImage和collectionView的组合,以及collectionView的随意间距设置
  8. DOM4J_Xpath的XML操作总结
  9. freebsd重启网卡命令
  10. ocs(office communications server)通讯簿无法同步的问题集锦及解决方法