About wex5

该作者尚未填入任何详情
So far wex5 has created 155 blog entries.

第6章 报表附录

 1.1   报表批注 表6.1 报表批注 批注 用途 描述 colspan $ALL--全部 $CURRENT--默认 $PRXCX--某单元格 列合并 例如:colspan:2(横向合并两个单元格) colspan:$PR3C4(按照第三行第四列定义的数据数量合并) colspan:RUM(按照RUM列获得的值合并) rowspan 同上 行合并,例如同上 group-break (true/false) 按分组换页 collapse (true/false) 拆分合并的单元格,处理表头表尾设置时当前行有合并单元格。 image-layout Originalsize(始大小) autosize(默认值) 背景图片布局(默认值为:原始大小) h-group $ALL--全部 $CURRENT--默认 $PRXCX--某单元格 水平方向计算范围 v-group [...]

第5章 报表导出与打印

1.1 导出方式 报表支持三种导出方式:PDF、EXCEL、WORD。 使用方法: 在.w页面上放一个toolbars组件 在toolbars组件里放一个exportBar组件 图5.1  导出工具栏设计图 图5.2  导出工具栏运行结果图 除了使用组件也可以使用javascript调用接口: API(js): 导出pdf :justep.xbl(‘reportid’).exportPDF(); 导出word :justep.xbl(‘reportid’).exportWord(); 导出excel :justep.xbl(‘reportid’).exportExcel();  1.2  打印设置 报表的打印与预览功能,需要使用到adobe reader的浏览器插件,所以在使用前请先正确安装adobe reader。可以从Adobe官方网站或者平台提供的软件更新功能中进行下载。  图5.3  打印第三方控件下载图 要实现报表的打印、预览、页面设置功能,可以使用组件printBar。 使用方法: 在.w页面上放一个toolbars组件 在toolbars组件里放一个printBar组件 图5.4  打印工具栏设计图 图5.5  打印工具栏运行结果图 在打印设置的窗口中,可以对纸张大小、边距、方向、页眉页脚大小进行设置。 图5.6  报表页面设置示例图 除了使用组件也可以使用javascript调用导出接口: API(js): 打印:justep.xbl(‘reportid’).print(); [...]

第4章 图表示例

1.1 饼图 饼图显示一个数据集中各项的大小与各项总和的比例。饼图中的扇区显示为整个饼图的百分比。 设计饼图时要注意: 饼图只支持一个数据集。 要绘制的数据不能有负值,而且最好不要有零值。 分组类别不要过多。 饼图包括普通饼图和3D饼图。 表4.1   示例数据集: 序号 产品类别(RCATEGORYNAME) 库存成本(RSUMPRICE) 1 饮料 12480.25 2 特制品 3549.35 3 调味品 12023.55 4 点心 10392.2 5 谷类/麦片 5594.5 6 肉/家禽 5729.45 7 海鲜 13010.35 8 日用品 11271.2 [...]

第3章 报表示例

1.1 网格报表 网格报表是我们最常见的报表之一,一般情况下,网格报表会根据数据集纵向扩展,我们将这样的网格报表称之为普通的网格报表;在实际的业务需求中,横向扩展的网格报表也会经常被应用到,下面我们对这两类网格报表做一下介绍。 1.1.1  普通网格报表 设计时: 图3.1  网格报表设计图 合并单元格B2、C2、D2、E2、F2、G2、H2,输入标题名称,并居中显示 选择 B4----H5为报表区域,设置报表边框 在B4、C4、D4、E4、F4、G4、H4中输入业务字段的名称,并将背景色设置为蓝色 在B5中,输入表达式select(p1.RPRODUCTID),表示引用产品ID(RPRODUCTID)的全部数据。 在C5中,输入表达式RCATEGORYNAME,其他单元格输入的表达式与C5类似。 运行时: 图3.2  网格报表运行结果图 1.1.2  横向扩展网格报表 图3.3  横向扩展网格报表设计图 图3.4  横向扩展网格报表标题扩展属性设置图 B2输入标题名,为了使标题居中,添加批注clospan:$ALL.PR4C3+3,意思为根据第四行第三列的表达式selecth进行全列扩展, B4-B10添加表头。 C4-C10添加业务字段。 C4输入表达式selecth(p1.RPRODUCTNAME),表示引用RPRODUCTNAME的全部数据进行横向扩展。 运行时: 图3.5  横向扩展网格报表运行结果图 1.2  分组报表 1.2.1   一级分组报表 [...]

第2章 报表模型开发指南

1.1  扩展函数 1.1.1   扩展的概念 报表工具与电子表格工具的最基本差异就是支持数据扩展。电子表格工具只能在每个单元格中填好需要的内容,并不能根据数据进行自动扩展。 以一个典型单行扩展的网格报表为例: 可以看到运行结果为: 我们可以看到,在excel设计的第五行(R5),数据集p1中的数据,通过select()函数进行纵向单行扩展,将一行扩展为四行。 但有时我们的一条数据可能并不全在一行显示,如下图显示,一条数据需要显示在多行上,这种类型的报表我们称之为卡片报表。 图 2.3  卡片报表运行结果图 如何才能简单灵活的指定报表的扩展方式?x5报表工具通过excel中的合并行的概念解决了这个问题。 图 2.4  卡片报表设计图 在卡片报表的设计时,将4-8行进行合并,这样报表工具会自动把4-8行当成一行进行处理,扩展将以这5行为一个单位进行。 如果我们这里不进行合并行的处理,会出现什么情况? 图 2.5  卡片报表运行结果图 可以看到报表工具就会按照单行扩展的原理进行处理,这是错误的。 以上两个例子分别展现了单行与多行两种扩展方式,但它们表达的概念其实是一样的。即是报表工具有别于表格工具的最基本区别——扩展。 当然除了常见的纵向扩展外,也可以进行横向扩展,控制它们的方式就是使用接下来介绍的扩展函数。 1.1.2    select()、selecth()函数 函数说明 从数据集的当前行集中选取符合条件的记录。 select()表示纵向扩展,selecth()表示横向扩展。 语法 datasetName.select(select_exp,filter_exp,sort_exp) datasetName.selecth(select_exp,filter_exp,sort_exp) 参数说明 [...]

第1章 报表模型概述

在任何一款应用系统中,报表都是最重要的一部分。 X5report 报表工具是一个功能完善、性能强健、成熟的商业智能软件产品。使用者可以通过报表设计器设计符合各种复杂需求的报表。并且包括支持多维饼图,折线图,柱图,仪表盘等二十几种统计图样式。X5report 报表工具拥有强大的报表展现能力;灵活的部署机制;而且无须在浏览器安装任何插件;特有的PDF打印控件实现了所见即所得的套打,分栏,分页等精确的报表打印。为企业的统计分析、数据中心、商业智能前端展现提供高性能,高效率的报表系统解决方案。 X5report采用JAVA开发,主要包含报表设计器与报表服务器两个部分。X5report报表与起步的X5平台一起使用。采用Excel作为报表设计器,非常简单,易于上手。 为了方便用户正确的使用X5report报表工具,我们编写了该用户手册。帮助用户更好的使用该工具进行报表设计与管理。 X5report报表工具主要包含两个部分:报表设计器、报表服务器 报表设计器:设计编辑报表,采用类EXCEL方式,继承了EXCEL的所有属性, 自带报表运算引擎,连接数据库后可预览打印报表,并可生成其它格式保存。 报表服务器:在后台提供统计报表运算的服务,开放各层次的 API 接口调用,由程序员调用生成报表。 图1.1  报表功能树图 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443  

第6章 组织机构

1.1  概述 在企业中,组织是为了完成企业目标而形成的具有特定结构、分工协作的团队。组织模型就是用来定义企业的组织形式的模型,它以职责、权限的形式定义了企业成员、企业各个部门的作用与任务,同时提供灵活的结构以适应不同的企业或企业中不同的组织结构。 组织模型是业务模型的重要组成部分和基础,它是企业中组织机构计算机化的抽象定义,对应于一个业务模型,其组织模型是唯一的。X5平台中的组织机构模型的核心是组织(org)【注:组织(org)是一个泛化的机构概念,它可以是机构(ogn)、部门(dpt)、岗位(pos)、人员成员(psm)等形式】、人员(person)和角色(role),通过这三个核心元素就可以完备地描述组织机构,如图6.1。角色是权限的集合,角色能分配到组织(org)上。 图6.1  组织构成图 说明: 人员(person):人员分配到相关的组织后才具有相关的功能和数据权限(即角色),分配到组织下的人员称之为人员成员,一个人员可以分配到多个组织单元从而形成多个人员成员。 组织(org)只是一个泛化的抽象概念,组织单元可以从组织中继承出各种具体的组织,并扩展各个具体的属性。目前系统的组织包括:机构、部门、岗位、人员成员。 组织具有自动继承的能力,子组织自动继承父组织的所有权限。 角色只能授给组织。 企业的经营活动是由多个业务功能【业务功能:业务过程中的业务环节】组成的,业务功能首先分配到组织模型中的角色上,也就是说角色拥有了哪些业务功能,然后将角色分配给组织,从而形成业务分工即组织拥有业务功能。最后由组织模型中的人员登录业务运行平台,以人员成员的身份运行业务功能,实现企业经营活动。在这些业务功能中,有些是可以独立执行的,而大多是根据其逻辑关系串接组合在一起,形成一系列的经营过程,即业务流程,人员通过运行业务功能借以启动、执行、控制流程,最终实现企业的经营过程的运作。 图6.2  组织模型与模型体系各个部分的关系图 1.2  机构 机构(ogn)是对企业中各种单位的抽象,是组织(org)中的一种表现形式,机构是一个容器,它可以包含多个子组织。 机构可以被分配角色,机构的角色可以被它的子组织继承。 1.3  部门 部门(dpt)对应于企业的静态结构划分,由企业的实际部门设置情况来决定,是以传统的面向职能或者现在流行的面向过程与客户方式对机构进行的划分,是机构的主要组成部分。例如:某公司的行政、销售、技术等部门,以及各个科室等等,都可以认为是部门。 对应着企业的实际经营活动,部门下可以设置子部门和分配岗位。部门不能独立存在,必须从属于机构或上级部门。 1.4  岗位 岗位(pos)是组织(org)的一种特殊形式即一种组织单元。岗位具有组织的所有特性。岗位是组织中对具有特定分工组织单元的抽象,如:一个项目组,可以出现“项目经理”、“开发工程师”、“测试工程师”等岗位;在岗位下的人员同时就拥有了岗位所具备的所有功能及数据权限(即拥有了岗位的所有角色)。 1.5  人员 人员(person)--客观存在,在组织中从事具体工作的最小个体。将人员分配到组织机构中任何组织(org)下,形成一个新的组织单元,即人员成员(psm)。在组织模型中,只有成为人员成员才能使他(她)承担起相关的职责,实现他(她)的使命。人员登录业务运行平台后,只能以人员成员的身份运行系统,才能实现其特定的职责。如果登录人员承担了多个职责(对应多个人员成员),那么在处理工作上,不同的功能会根据功能的环境选择和本功能对应的人员成员。 图6.3  人员列表界面图 图6.4  人员详细信息界面图 1.6  角色和授权 角色(role)--指应用领域内一种权力和责任的语义综合体,可以是一个抽象概念,也可以是对应于实际系统中的特定语义体,比如组织内部的职务等。其本身并不能代表权限的大小,只是权限的集合,可以被用来分配给组织(org)。权限只能通过角色分配给到组织(org),不能被直接分配。 [...]

第5章 业务流程

5.1 概述 X5业务流程是基于PetriNet原理的业务流程定义和运行体系,PetriNet是当今被广泛应用于业务流程描述和运行算法的理论体系。在PetriNet中只有三个基本元素,它们分别是Place(容器),Activity(处理)和Token(令牌),PetriNet的基础原则都是围绕这三个元素定义的,它们分别是: Place是用来存放Token的。 Activity用来消耗其输入Place中的Token,并且给它的输出的Place产生新Token。 Activity和Activity不能直接互连接的,只能通过Place互连。如图所示。 图5.1 基本的PetrnNet图 Activity激活的条件是其输入的所有Place中都有Token。 一个Token被一个Activity消耗以后就没了,不能再被消耗。 虽然X5的业务流程体系是基于PetriNet原理的,但由于业务模型层封装的原因,在实际的业务流程建模过程中并不会太多接触到底层PetriNet的东西。所以在这里就不再对PetriNet做详细描述了,具体PetriNet的详细信息请参阅与PetriNet相关的专业文档。 X5的业务流程以PetriNet作为基础理论依据,把业务流程元素和PetriNet元素做了一一对应,并且在此基础之上扩展出更合适于业务模型层的复杂业务流程规则,以形成业务流程定义。同样的,在业务流程运行时的算法体系中也遵循了基本的PetriNet原理,并在此基础之上根据业务流程定义的扩展,也对业务流程运行扩展出相应特性。如图所示就是上个PetriNet图对应的流程图。 图5.2 与PetriNet图对应的业务流程图 业务流程本质上就是把业务表单在人之间传来传去,负责传送业务表单并且通知对方进行处理的媒介途径是待办任务。所以X5业务流程体系中待办任务是核心基础,无论是业务流程还是协同只要牵扯到业务表单在人之间的传递都要依赖待办任务。基于以上的理解和考虑,X5业务流程体系是以待办任务为核心,结合业务流程与协同于一身的业务流程体系。 X5业务流程体系分为三部分,它们分别是业务流程定义,业务流程运行和业务流程实例(业务流程控制数据)。业务流程定义描述业务流程的整个过程和各种规则,从使用上说画的流程图和设置的流程规则就是业务流程定义。业务流程运行的核心是业务流程引擎,它解析业务流程定义,推进业务流程的运行,运行的结果就是业务流程实例。一个业务流程定义被运行一次就产生一个业务流程实例,在业务流程实例中包含若干待办任务。 5.2 业务流程定义 业务流程定义描述的是企业实现一个业务目标(业务审批)需要包含多少个环节步骤,各环节步骤间前后顺序和同步关系,各步骤由谁来处理等信息。抽象到业务模型上,步骤对应业务环节,顺序关系由连接弧定义,处理人对应执行者,处理要求对应到处理规则,所以业务流程定义是由环节,处理规则和连接弧组成。 业务过程中画在流程图上的业务环节,将以业务流程的方式使用待办任务作为入口来运行。此类业务环节需要在执行者收到待办任务以后,通过打开处理待办任务才可以运行业务环节。业务流程定义特指此类业务环节的定义,在业务过程中包含的没被画在流程图上的业务环节都是静态的业务环节,它们不包含在业务流程定义的范畴内。 5.2.1 启动规则 启动规则是在调用流程启动动作(startProcessQueryAction)时起作用,用来初始化业务流程实例的规则。启动规则不是必须设置,当它没有设置是会根据缺省的启动规则初始化业务流程。启动规则的详细描述,见5.4.1。 5.2.2 通知规则 通知规则是在调用流程结束动作(finishProcessAction)时或调用流程终止动作(abortProcessAction)时起作用的,用于给相关人产生通知待办任务的规则。通知规则不是必须设置的,当它没有设置时就表示不产生通知。通知规则的详细描述,见5.4.2。 5.3 业务流程环节 业务流程环节是业务流程里最基本最重要的组成元素,它描述业务流程中需要人为参与的处理,自动的处理和业务流程中路径的选择,分支和合并等。需要注意的是,所有业务流程环节定义的各种规则和条件都只有在业务流程执行讯问动作的时候起作用。 5.3.1 静态环节 业务流程中有两类环节:一类是非流程图上的环节,称之为静态环节;一类是流程图上的环节,称之为流程环节(后续介绍的都是流程环节)。 一般平台默认为每个业务流程生成一个mainActivity的静态环节,用来启动流程;通知规则中指向的环节,可以根据业务需求指定静态环节或流程环节。 5.3.2 开始环节 [...]

第4章 业务逻辑

1.1  概述 业务逻辑模块主要用于编写业务逻辑,一般包含三个子模块:action(定义action和procedure)、code(业务逻辑的实现,一般使用java实现,有src,dsrc,lib)、fn(函数定义)。 1.2  Action定义 语法: <action name=" n" global="true" log-enabled="true" procedure=" "> <参数访问权限 name=" " type=" "/> …… </action> 说明: name:action的名称。 global:标识当前action是否是全局的。 log-enabled:标识当前action是否需要记录日志。 procedure:关联的procedure名称。 参数节点:声明参数。参数访问权限包括:private,私有,表示只能在action声明时赋值;protected,保护的,表示可以在process中has-action时赋值;public,公共的,可以接受前台传入的值;permission,权限参数,只能从组织机构上传权限的值 参数节点上的属性:name属性:参数名;type属性:参数类型;value属性:参数的默认值;required属性:标识参数是否必须的;class属性:当type是Object时,可以指定具体的Java类为参数类型。 示例: <action name="startProcessAction" global="true" log-enabled="true" [...]

第3章 业务数据

1.1  概述 业务数据模块负责维护业务的数据。 主要包括本体与数据库表的映射信息(mapping)和数据库的连接配置信息。。 业务系统的持久存储层是ER数据库,业务系统需要知道如何把本体定义和数据库里的表结构相对应,这样系统就可以把业务数据的操作自动转换成相应的数据库操作,这个过程类似Hibernate实现的ORM过程,本体到物理表的映射也可以缩写为ORM,但这里的“O”是指本体(Ontology)。 1.2  数据模块定义 1.2.1   数据连接 目前支持的数据库类型主要是SQL Server、Oracle、 Sybase和DB2。默认情况下,对应的数据库是Oracle。 每一个数据模块都可以定义它自己的数据库连接配置,按照模块的继承原则子模块可以继承父模块的数据库连接配置。 语法: <config name="dataSource" value="连接参数"/> 实例: <config name="dataSource" value="java:comp/env/system" /> 说明:配置的JNDI名称和应用服务中设置的JNDI名称一致,例如 对tomcat下的Oracle数据的配置为“…\apache-tomcat\conf\server.xml”: <Resource name="system" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:oci:@oracle73" username="sa" password="sa" maxActive="10" [...]