zoukankan      html  css  js  c++  java
  • 驰骋工作流引擎-表单引擎

    表单定义:表单是用来呈现与存储数据的图形化界面。我们用汽车来比喻,数据就是货物、表单就是车厢、汽车的控制系统就是工作流程引擎。

    clip_image002

    驰骋表单分类:驰骋表单为了适用与不同的用户类型与不同的应用平台,把他分为:自由表单、自定义表单、Offices表单。驰骋表单可以与驰骋工作流引擎紧密结合运行,也可以单独运行。

    自由表单:它采用关系型数据库存储表单模版的设计理念表单。它可以通过拖拽的方式图形化的设计一个表单。驰骋的自由表单=表单模版+表单设计器+表单解析执行器三部分构成。对于表单解析执行器,我们又分为aspx表单解析执行器,jsp表单解析执行器, andriod表单解析执行器,silverlight表单解析执行器。

    自定义表单:使用户自己定义一个表单,把他的url设置到表单注册表里,双方通过一定的参数约定来工作。

    Office表单:他是借助weboffice的在线编辑文档的组件,完成对数据的采集需要,它直接提供给操作用户的是一个excel文件或者word文件。所以驰骋的office表单=Excel表单+Word表单。对于公文类的流程大多用word表单,业务类的表单多用于使用excel表单。我们使用上驰骋的office表单,需要感谢北京点聚公司为我们提供的这个在线编辑组件。

    综述:以上任何一个类型的表单,都有一个表单ID,一个表单类型,一个表单数据存储表, 自定义表单与office表单也不例外。

    目前流行的表单设计器有两种思路,第一种基于文件的作为展现与存储介质,创建一个表单需要首先创建一个文件比如 .jsp,.aspx,php 或者自定义格式的文件。第二种基于关系性数据库的他的业务操作模式、表单元素都以格式化的方式存储到数据表里,不依赖于任何文件。这两种都有自己的优缺点,对于后者来说,我们认为扩展性、移植性、跨平台工作更好一些,驰骋表单采用的第二种方案。

    定义:驰骋的自由表单就是随心所欲的在画布上自己定义表单,设计的表单所见即所得,我们把这样的表单成为自由表单。

    设计理论基础:驰骋表单是采用了关系数据库为基础存储的模式,这种格式可扩展性、移植性比较好。 驰骋表单=表单模版+表单设计器+各种形式的表单解析执行器

    一、组成部分

    驰骋表单=表单模版+表单设计器+各种形式的表单解析执行器

    表单模版:他就是一个xml文件如下图所示。

    clip_image004

    表单设计器:表单设计器是用来定义表单解构的工具,它把表单定义的内容按照关系性数据库解构存储到数据表里,导出到xml就是表单模版。

    clip_image006

    表单的解析执行器:根据应用的环境不同,驰骋表单解析执行器分为,aspx表单解析执行器,jsp表单解析执行器,android表单解析执行器。Silverlight表单解析执行器。

    对于同一个表单,不同类型的表单解析执行器,可以应用于不同的环境。

    二、表单设计器

    驰骋表单设计器,采用数据库格式化存储表单模版

    驰骋自由表单设计器有一种存储格式、两种设计模式,三种展现方式,具有一定的通用的接口可以被外部调用,自己有可以独立运行起来的应用程序。

    一种存储格式:采用映射的机制,以xml文件格式存储。

    两种设计模式:傻瓜表单设计器,自由表单设计器。

    三种展现方式:傻瓜表单、自由表单、手机表单。

    表单设计器以映射思想为核心。所说的映射业务规则对字段,操作方法,界面展现,操作行为的描述。

    表单设计者认为事物的业务规则与操作模式都是可以被抽象出来的,并且把其封装并实现。 但是并不是所有的业务规则都有价值去抽象,是否有价值去抽象并封装是应用的范围与实现的代价。

    由以上两个理论为指导,把界面所有的元素的描述,业务规则的描述以对象的形式为描述。

    CcBPM 自由表单设计器不一定满足所有的数据采集与数据展现格式,但是可以解决对数据库操作层面的绝大多数需求。

    用户可根据自己的需要选择其中的一种表单的工作方式。

    三、表单解析执行器

    定义:表单解析执行器,就是解析表单的定义,进行工作。根据平台与应用的环境不同,驰骋的表单解析执行器分为,java的表单解析执行器,asp.net的解析执行器,android的表单解析执行器。

    Java解析执行器:

    clip_image009

    Asp.net解析执行器:

    clip_image011

    Android 解析执行器:

    clip_image013

    更多的功能探索,请访问在线演示平台:
    流程演示环境:http://demo.ccflow.org/
    OA演示环境:(用户名amdin 密码:pub)
    http://ccoa.ccflow.org/Main/NewHome/login.aspx
    驰骋工作流引擎官方网站:http://www.ccflow.org/
    与众多爱好者共同探索,请加官方QQ群:383352596
    指定联系官方QQ:1146275232

  • 相关阅读:
    从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构
    算法导论第二章小试牛刀
    python网络编程初级
    python基础的几个小练习题
    LeetCode:114_Flatten Binary Tree to Linked List | 将一棵二叉树变成链表的形式 | Medium
    LeetCode:111_Minimum Depth of Binary Tree | 二叉树的最小深度 | Easy
    LeetCode:110_Balanced Binary Tree | 平衡二叉树 | Easy
    LeetCode: 106_Construct Binary Tree from Inorder and Postorder Traversal | 根据中序和后序遍历构建二叉树 | Medium
    mysql中json_object函数的使用?
    mysql中json_remove函数的使用?
  • 原文地址:https://www.cnblogs.com/ccflow/p/5810217.html
Copyright © 2011-2022 走看看