• 实现表单引擎设计常用的两种设计方案优劣势比较


    什么是表单引擎

    表单引擎是为快速实施项目研发的轻量级表单设计工具。采用表单引擎工具可在不开发和新增加代码的情况下设计出新表单样式,同比程序开发可省掉程序员差不多70%的开发工作量,并且后期维护相对简单,管理方便,管理层也不会再因为项目组成员离职而头大后续的程序移交问题。[引用百度百科<表单引擎>]

    当前阶段表单引擎设计的两种设计思想

    在表单引擎设计领域主要有两种设计思想:第一种是基于文件设计的,第二种是积极与关系数据库设计。

    基于文件设计的:

    基于文件设计的思想是,创建表单的时候,首先创建一个文件比如:xxxx.jsp,xxx.aspx,xxx.php 文件。在这个文件上拖放相关的控件,或者加载相关的通用js代码,或者在对字段Input元素做特殊的标记,让表单引擎解析执行。

    表单运行时,运行的界面载体是一个Url文件地址,这个地址引用到相关的菜单上去。

    基于关系数据库设计:

          基于关系数据库设计的组成部分是表单设计器、表单解析执行器、表单模板三部分组成。

         表单设计器,把表单元素都按照关系表存储到数据库里面,每个表单有一个ID,这个表单ID,挂接到表单的解析执行器上,就可以工作。

         表单模板将从表单设计器上设计组件关系存储到数据库中,由各个组件表组成的数据间的关系拼接成表单模板。

         表单解析执行器是将表单模板数据进行解析,将解析后的数据形态以网页的形式展现。

    基于文件设计思想的实现过程

     

    基于文件设计思想

     

    基于文件设计思想的表单引擎系统,需要由软件开发工作者首先设计好项目需要的网页内容,进行封装和部署后,生成使用者可以编辑的表单结构。因为是定制化开发可满足不同的表单样式、表单模板等的设计,能最大程度的符合企业管理者的需求。

    弊端一、文件表单布局排版是固定化的,需要改动就需要联系研发人员进行重新设计页面布局,耗时长。

    弊端二、该设计模式不能适用于多种行业的表单需求。如现有的系列OA请假报销等表单文件是不能使用项目管理、公文审批等表单引擎需要的。只能是需要开发者根据后者的表单要求重新研发网页功能,从而导致现有表单系统的不可复用性,以及开发多套表单引擎系统投入的大量的人力研发。

    基于关系数据库设计思想实现过程

     

    基于关系数据库设计思想

     

    基于关系数据库的设计模式将表单引擎系统封装为一个设计工具,任何需要的表单只需要在该工具上进行拖拽设计即可,拖拽生成表单数据以数据流的形式存放在数据库中,由系统内置的表单解析器解析和展示填写的内容。该过程无须研发人员改动,表单设计人员可随意使用表单设计工具实现目标表单。

    弊端是表单展示为统一风格,较为单调。

    优缺点对比

    设计思想

    优点

    缺点

    基于文件设计

    灵活、可扩展性高、自由,可以添加样式,

    可以添加javascript满足各种各样应用环境需要。

    只能由软件开发人员制作、定制化开发。

    基于关系数据库设计

    面向人群广、

    随意修改表单设计、

    满足不同行业需求

    使用人员不需要编程能力

    同一套展示风格

    如果您想使用基于关系数据库模式的设计,请参考驰骋表单引擎,该表单引擎集成在驰骋工作流程引擎里面,可以单独运行。

    源代码:http://ccflow.org/down.htm

    在线演示:http://demo.ccflow.org

    驰骋表单引擎系统介绍

    基于关系数据库设计的表单引擎厂家国内较为著名有驰骋工作流引擎,该流程引擎代码完全开发,可在国际开源网站GitHub上下载。驰骋工作流引擎又称CCBPM,不仅有.NET平台下的CCFLOW还有Java平台下的JFLOW,另有单独的移动端系统可以和微信、钉钉进行集成,实现了移动办公。

        驰骋工作流引擎的表单设计引擎有两种设计风格,第一种为系统内置的固定格式的傻瓜表单设计器,第二种为用户自定义展示的自由表单设计器。展示风格如下:

     

    傻瓜表单设计器

     

     

    自由表单设计器

     

    两种设计器均采用同一套表单设计组件,组件中设计了基础组件、流程组件、移动端组件三种。根据需要实现的流程功能和表单功能以及表单展示的载体的不同,自定义拖拽使用即可。设计过程完全脱离软件开发人员,只要具备操作电脑的基础知识的人员都可以进行设计和使用。

    驰骋表单引擎相关的表结构

    流程数据表,以WF_开头。

    系统数据表,以SYS_开头。

    组织结构表,以PORT_开头。

    权限管理表,以GPM_开头。

    流程节点相关表,以ND开头。

    重点表结构有:

    WF_WorkFlowDeleteLog
    WF_TransferCustom
    WF_Track
    WF_Task
    WF_SQLTemplate
    WF_ShiftWork
    WF_SelectAccper
    WF_ReturnWork
    WF_RememberMe
    WF_PushMsg
    WF_NodeToolbar
    WF_NodeSubFlow
    WF_NodeStation
    WF_NodeReturn
    WF_NodeEmp
    WF_NodeDept
    WF_NodeCancel
    WF_Node
    WF_LabNote
    WF_HungUp
    WF_GenerWorkFlow
    WF_GenerWorkerlist
    WF_FrmNode
    WF_FlowSort
    WF_FlowNode
    WF_FlowFormTree
    WF_Flow
    WF_FindWorkerRole
    WF_Emp
    WF_DirectionStation
    WF_Direction
    WF_DeptFlowSearch
    WF_Cond
    WF_CHEval
    WF_CH
    WF_CCStation
    WF_CCList
    WF_CCEmp
    WF_CCDept
    WF_BillType
    WF_BillTemplate
    WF_Bill
    WF_AccepterRole
    Sys_WFSealData
    Sys_UserVar
    Sys_UserRegedit
    Sys_UserLogT
    Sys_SMS
    Sys_SFTable
    Sys_SFDBSrc
    Sys_Serial
    Sys_RptTemplate
    Sys_RptStation
    Sys_RptEmp
    Sys_RptDept
    Sys_MapFrame
    Sys_MapExt
    Sys_MapDtl
    Sys_MapData
    Sys_MapAttr
    Sys_GroupField
    Sys_GroupEnsTemplate
    Sys_GloVar
    Sys_FrmSln
    Sys_FrmRpt
    Sys_FrmRePortField
    Sys_FrmRB
    Sys_FrmLink
    Sys_FrmLine
    Sys_FrmLab
    Sys_FrmImgAthDB
    Sys_FrmImgAth
    Sys_FrmImg
    Sys_FrmEvent
    Sys_FrmEleDB
    Sys_FrmEle
    Sys_FrmBtn
    Sys_FrmAttachmentDB
    Sys_FrmAttachment
    Sys_FormTree
    Sys_FileManager
    Sys_ExcelTable
    Sys_ExcelSheet
    Sys_ExcelFile
    Sys_ExcelField
    Sys_EnVerDtl
    Sys_EnVer
    Sys_EnumMain
    Sys_Enum
    Sys_EnCfg
    Sys_DocFile
    Port_StationType
    Port_Station
    Port_EmpStation
    Port_Emp
    Port_DeptStation
    Port_DeptEmpStation
    Port_DeptEmp
    Port_Dept
    GPM_UserMenu
    GPM_StationMenu
    GPM_PerSetting
    GPM_Menu
    GPM_GroupStation
    GPM_GroupMenu
    GPM_GroupEmp
    GPM_Group
    GPM_EmpApp
    GPM_AppSort
    GPM_App

    ==== 如果该文件对您有帮助,请下载开源的驰骋表单引擎设计器,流程引擎设计器.

    http://ccflow.org/down.htm

  • 相关阅读:
    陶哲轩实分析 习题 7.1.5
    java程序员必知的 8大排序
    java抽象类
    公式解析器开源项目整理
    大并发处理解决方案
    让Java代码跑得更快
    Java基础知识 (扫盲)
    一道多线程题目的解决方案
    如何优化JAVA程序设计和编码,提高JAVA性能
    词法分析(NFA与DFA)
  • 原文地址:https://www.cnblogs.com/ccflow/p/12731180.html
Copyright © 2020-2023  润新知