NC报表开发手册.docx





《NC报表开发手册.docx》由会员分享,可在线阅读,更多相关《NC报表开发手册.docx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、NC报表开发手册 报表模式化开发手册 (,forNC-V3)朱俊彬、赖雄伟、李媛媛 NC-UAP目 录 第一章 总体介绍. 2 1. 开发概述 . 2技术型报表与业务型报表 . 2 一般报表开发存在的问题 . 2 模式化报表开发思路 . 22. 应用模型 . 3数据模型与呈现模型 . 3 数据字典 . 4 业务系统集成 . 5其次章 低开发难度报表. 6 1. 概述 . 6 2. 查询类报表 . 8明细报表 . 8 汇总报表 . 17 列结构依靠于查询条件的报表(动态SQL ). 233. 交叉类报表 . 30列向拼接查询型报表(复合查询).31 列向分支统计型报表( CASE-WHEN ).
2、 36 动态行列交叉型报表(旋转交叉). 404. 投影类报表 . 45单元格依靠于行列条件的报表(投影交叉). 45 半录入半嵌入型报表(合并查询). 515. 算法类报表 . 55数据加工预备学问 . 55 非投影类占比报表(一般占比). 60 投影类占比报表(投影占比). 65 程序送数型报表 . 696. 高级应用 . 73支持穿透的非投影交叉类报表(一般穿透). 73 支持穿透的投影交叉类报表(投影穿透). 79 支持主从连动的报表 . 84 支持统计图表的报表 . 88第三章 高开发难度报表. 92 1. 基于行业报表工具开发的报表 . 92标准报表 . 92 分块填充报表 . 1
3、042. 基于CELL REPORT工具开发的报表. 111CELL REPORT 工具介绍. 111 CELL REPORT 报表. 113附录. 124 1模式一览表 . 124 2查询引擎FAQ之参数篇 . 125第一章 总体介绍1.开发概述 技术型报表与业务型报表我们将报表应用划分为两种类型,一类应用的侧重点在于出报表所蕴涵的技术,开发者(程 序员或实施人员)通常凭借肯定的数据库和编程学问,基于库里的业务数据,做出符合用户 需求的报表呈现和输出,此类应用称为技术型报表;另一类应用则着眼于整个报表生命周期 中各环节的管理(包括出表、上报、审核、汇总、发布等流程),即把做报表的行为当成一
4、项业务,对干脆开发者的主要要求在于业务熟识程度而非技术,此类应用称为业务型报表。 前者通常由专业程序员、二次开发人员或技术型实施顾问担当开发工作,早期工具如报表模 板、自定义查询等均面对此类应用,IUFO 则是后者的代表性产品。本文档作为集团平台技 术部对外发布的开发手册,主要针对对象为技术型报表。 一般报表开发存在的问题报表属于 ERP 项目中的关键应用,通常被用户的高层领导用于企业业绩评估、协助决策或 对外发布。据统计,在许多交付压力较大的项目当中,报表开发占有相当的比重。就目前开 发觉状而言,影响报表快速交付的主要问题有以下几点: 1、 报表开发本身的困难性高。中国式报表由于政策以及长期
5、人工填报的缘由具有极强的个 性化特点,依据业务逻辑进行数据查询、数据组织、表样呈现和界面处理的每个步骤都 耗费了很高的开发代价; 2、 报表开发的复用性低。开发人员投入巨大努力完成第一批报表后,发觉其次批报表依旧 要从头做起,或者另一名开发人员遇到类似于第一批报表的需求,无法借鉴(甚至根本 不知道)前人的开发成果; 3、 报表开发对专业技能要求偏高。许多二次开发人员虽然不是特地搞技术的,但通常具有 肯定的开发基础,而目前的二次开发平台限制了他们发挥应有的作用。 模式化报表开发思路所谓模式化开发,包含两方面的工作:专职人员将有代表性的应用进行归纳抽象,提取出共 性的部分形成代码框架和方案,并以手
6、册的形式对外发布;报表开发人员拿到项目需求后, 从手册上找到匹配的模式, 通过编写一些低技术含量的子类代码或进行一些机械性的工具操 作,就能够快速地完成开发工作。以往大部分的重复性劳动已经在模式的基类或者缺省实现第 2 页中处理,当开发人员须要体现特性化的时候,则可以通过自己对接口的特别实现完成。 随着模式的逐步丰富,开发人员开发各类模式报表的工作量都会明显降低,同时也实现了代 码复用和学问共享,另一方面,由于开发者的工作趋于简洁和机械,他们的角色就可以由低 专业技能人员所取代。从这个角度上说,模式化是解决上节所述三个问题从而真正实现报表 快速开发的有效方案。 本手册介绍了两大类 NC 报表开
7、发模式,一类是基于查询引擎的低开发难度报表,其编码量 小,操作简洁,适合于开发数据和格式比较规律的报表;另一类是基于行业报表工具的高开 发难度报表,主要工作是编写子类代码,自由度高,适合于开发困难报表。2.应用模型 数据模型与呈现模型一般来说,报表是由数据和格式组成的整体。报表的数据模型通常包含以下信息:1、 数据结构; 2、 待定参数描述; 3、 取数规则描述; 4、 数据加工算法描述; 5、 多个数据集合之间的数据关联描述;可作为数据载体的常用 NC 数据结构包括:1、 循环访问 VO,是由属性和取值成对组成的 集合,供应了依据属性获得/设置值的方法,是单据和报表模板采纳的主要结构; 2、
8、 一般 VO,包含多个属性及每个属性的 getter 和 setter 方法,是 业务组主要数据结构的父类; 3、 存储数据集,由元数据和内容数据两部分组成, 元数据(Column)描述了各列的信息,内容数据描述了一个二维的数据集合,当游标 指向内容数据的某行时,可以获得该行指定列的数据,用于查询引擎; 4 、 内 存 结 果 集 , 同 样 由 元 数 据 和 内 容 数 据 组 成 , 其 中 元 数 据(MemoryResultSetMetaData)描述各列信息,内容数据(ArrayList)描述了一个二 维数据集合,可以干脆访问其任何元素,目前被一些业务算法运用; 5、 Object
9、,Vector,ArrayList这些都是 JDK 的常用结构,均可存储二维数据。报表的呈现模型通常包含以下信息:1、 控件(核心控件是表格)属性和布局; 2、 控件显示内容与显示规则(绑定数据、参数、行列格式、界面资源等); 3、 控件连动规则; 4、 数据处理规则(定位、排序、过滤、统计、公式、交叉、钻取等); 5、 动态扩展规则; 6、 输入输出限制(待定参数设置,打印,导出等)第 3 页数据字典NC 数据字典供应了统一的数据建模平台,支持对各种数据库对象进行管理,维护这些物理 对象的逻辑属性,并向外系统供应访问数据库逻辑信息的接口。以查询引擎为例,查询对象 的定义是基于数据字典进行的,
10、而这份数据字典来自查询对象所指定的数据源。由于多数报 表的列与业务数据库的字段存在某种对应关系, 因此数据字典的存在有助于提高查询定义的 直观性和易用性。NC 数据字典通常在安装产品时候由系统生成,假如想自己为某些数据库对象生成字典,可 以采纳数据字典管理界面供应的导入方法。导入方式包括三种(具体操作可参见数据字典 导入说明 ):1、 解析 PDM 文件(xml 格式); 2、 解析 NC 标准建库脚本; 3、 提取数据库元数据; 假如须要给非 NC数据库(比如用户采纳的第三方数据库)生成数据字典,可以利用 PowerDesigner供应的逆向工程功能将库里的物理表生成 PDM文件,修改其中表
11、和字段的 中文名称,然后以 xml 文件格式存储,再运用上述第一种方法导入。第 4 页 业务系统集成对于干脆运用查询引擎开发出的报表,可以运用以下两种方式挂接到业务组的功能节点。强 烈建议把打算挂接节点的查询对象和格式对象的编码设为与业务系统相关的有意义字符串, 以避开不同业务系统预置对象相互覆盖的危急性。报表管理节点挂接法:1、 注册功能节点,类名为 ; 2、 下挂一个参数,参数名为 folderId,参数值为客户化下查询引擎管理中相关报表目 录的 ID(可从数据库表 pub_formatmodeldef 的 id 字段查出)。独立报表节点挂接法:1、 注册功能节点,类名为:2、 下挂两个参
12、数:pkQryNode界面模型对应的编码 (可从查询引擎管理界面读取), dsName查询定义所在数据源。对于高开发难度模式的报表,则与一般功能节点一样挂接 ToftPanel 的子类即可。第 5 页其次章 低开发难度报表1.概述本手册列举的低开发难度报表模式统一由查询引擎(V3 版本)供应解决方案。查询引擎是 一个面对高级实施人员和一般开发人员的查询建模产品, 持续并完善了自定义查询体系的技 术路途,在全面支持困难查询的设计和特性化的报表呈现的同时,大幅度降低了报表开发人 员的编码工作量和专业技能要求。 我们再来看一下查询引擎的适用性和不适用性。查询引擎长期作为一个查询工具发展,因此 尤其适
13、用于与数据库查询分析或数据挖掘关系亲密的报表开发, 同时也支持程序员调用服务 器端代码对数据进行业务处理。另一方面, 自定义查询体系与模板体系存在一个很大的不同, 模板体系在发布产品之前已经由程序员录入了大量初始化数据, 因此不同用户能够安排到不 同的查询模板、报表模板和打印模板,而自定义查询体系是完全自定义的实时开发,没有模 板的预制数据,因此在一个时刻只支持一种参数限制样式、一种报表界面样式和一种打印样 式(或干脆打印),但这些样式均可在设计态修改。在呈现上,由于查询引擎运用的是 SWING 的表格控件,因此对一些 EXCEL 风格的需求支持不够,这个薄弱环节将在 V31 得到加强。总体来
14、说,V3 版本的查询引擎暂不适用于以下两类报表开发:1、 有多模板安排需求的报表,或对打印有高度要求的报表; 2、 存在表体合并单元格的报表。查询引擎的查询模型(数据模型)设计如下: 查询模型流程如下所示(设计态/运行态): 第 6 页 界面模型(呈现模型)设计如下:第 7 页界面模型流程如下所示: 本章共介绍了五大类报表的十五种开发模式。尽管这些模式之间存在相当差异,但是针对以 前我们发觉的一些用例杂乱导致的培训效果问题,本章的全部范例集中面对两个业务应用 (单位费用统计和部门人事统计),即用不同方案解决相像问题,以便于读者从中领悟和比 较这些模式的原理、特点和适用性。希望这种做法不会给读者
15、造成一个误导:查询引擎只能 解决这两类报表的应用。2.查询类报表查询类报表指通过一个或多个 SQL 查询结果形成的二维数据呈现出来的报表,由于 SQL 的 语法特点,此类报表通常具有固定的列结构和动态的行结构,但模式也探讨了一种依据 参数动态变更查询列结构的方案。明细报表明细报表用于呈现最基本维度上的数据,即最细粒度的数据。通常明细总是相对于汇总而言 的,假如我们把某商品每个月的总销售额列表视为汇总数据,那么该商品每天的具体销售情 况就可视为明细数据;假如我们把某部门当年的总薪资状况做成汇总表,那么该部门每位员 工当年的薪资状况就可以做成明细表。查询类报表中的明细表通常是指一些不含聚合函数的
16、SQL 语句干脆能够查询出的数据形成的报表。 第 8 页开发人员须要通过多表联查 SQL 或者复合查询获得表体数据,同时为报表呈现供应待定条 件设置、栏位设置、排序、过滤、定位、小计合计及输出等功能。当明细表与汇总表一起出 现时,用户通常还会有从汇总数据联查明细数据的需求(又称穿透或钻取),此类应用将在 模式中介绍。适用于:?明细数据的取数规则可用 SQL 描述; 不适用于:?通过行列条件统计单元取值的明细表。此类报表应遵循模式解决; ?通过程序算法构造明细数据的报表。此类报表应遵循算法类报表模式解决;取数由向导式 SQL 设计描述,查询条件由参数限制机制解决,栏目在格式设计态设定,排 序、过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NC 报表 开发 手册

限制150内