当前位置:文档之家› 润乾报表4.0高级设计(一)

润乾报表4.0高级设计(一)

基本概念 扩展模型 主格模型 层次坐标 格集 线性坐标 平面坐标
第10页
1.2.1 运算模型基本概念
集合函数
运算结果为集合的函数,我们称为集合函数。
集合函数包括:group(),select(),list(), query(),call(),to()等。
集合表达式/单值表达式
计算结果为集合的表达式称为集合表达式; 计算结果为单值的表达式称为单值表达式。
第11页
集合表达式与单值表达式
集合表达式 单值表达式
第12页
集合函数
Select Group Call/Call2 query/query2 List …
第13页
Select()
语法:
datasetName.select( <select_exp>{, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
第14页
练习
网格式报表
第15页
group()
语法:
datasetName.group(selectExp{,descExp{,filterExp{,sortExp {,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
=ds1.sum(# 5,#4==A1)
一组数据的集合,数据类型由sql语句的第一个选出字段决定
第22页
query2()
函数说明:
执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语 句中有多个字段,则返回第一个字段的结果值。和query()函数的差别 在于多了第一个参数,第一个参数用于制定数据源名称,通过他可以 实现不同单元格从不同数据源获取数据 语法: query2(dbname, sqlStatement{,arg1{,arg2{,arg3{,……}}}} 参数说明: dbname 数据库逻辑名,为null表示缺省数据库 sqlStatement 合法的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式 返回值: 一组数据的集合,数据类型由sql语句的第一个选出字段决定
第24页
1.2.2 扩展模型
不可扩展
当单元格的数据值表达式为单值表达式时,该单元格默认为不可 扩展单元格。
扩展单元格
当单元格的数据值表达式为集合表达式时,该单元格默认为可扩 展单元格。
可扩展
横向扩展 纵向扩展
第25页
练习
做一张九九乘法表 要求:左表头和上表头分别为1-9个数字,交叉项 为左表头对应数字与上表头对应数字的乘积
第3页
一、非线性报表设计
1.1 非线性报表的定义 1.2 非线性报表运算模型 1.3 增强函数与枚举分组函数
第4页
1.1 非线性报表定义
满足下列条件的任何一个即为非线性报表
多数据集 层次坐标计算(非常规的跨行组运算) 线性坐标(含seq函数及C[]操作符) 平面坐标(含cell函数及冒号操作符) 增强函数和枚举分组函数 含有多个更新属性的填报表
第8页
含有多个更新属性的填报表
润乾报表的填报表可以同时具有多个回填目标, 同一张报表的数据可以同时回写入多个数据表。 只有一个回填目标(更新属性)的填报表(也就 是只向一个数据表回填,不同时更新多个数据表 )不算作非线性报表,而含有两个或以上的回填 目标的填报表被则算作非线性报表。
第9页
1.2 非线性报表的运算模型
语法:
list(valueExp1{,valueExp2{,valueExp3{,……}}})
参数说明:
valueExp(n) 可以是常数或表达式
第19页
Call()
函数说明: 执行存储过程,返回结果数据集合,只能返回单列数据,如果存 储过程返回多个字段,则返回第一个字段的结果值 语法: call(sqlStatement{,arg1{,arg2{,arg3{,……}}}}) 参数说明: sqlStatement 合法的调用存储过程的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式, 如果是输出结果集的参数,对应的参数表达式写成"@@result" 返回值: 一组数据的集合,由结果集的第一个字段决定数据类型,如果结 果集是多列,只返回第一列 举例: call("{call ResultSet (?,?,?)}","@@result","000001",A2) 表示执行存储过程ResultSet,第一个输出参数输出结果集,第二 、三个参数传入"000001",A2作为参数值
第23页
To()
函数说明:
生成一组连续的整数数据 语法: to(startExp,endExp{,stepExp}) 参数说明: startExp 整数数据开始的表达式 endExp 整数数据结束的表达式 stepExp 整数数据步长的表达式 函数示例: to(1,5)=list(1,2,3,4,5) to(1,5,2)=list(1,3,5) to(-5,-10,-2)=list(-5,-7,-9) to(-10,-8)=list(-10,-9,-8)
第20页
Call2()
函数说明: 除第一个参数为数据源连接外,其他参数可call()函数相同,功能 也和call()函数相同,通过第一个参数,可以实现不同的单元格连接不 同的数据源。 语法: call(dbName,sqlStatement{,arg1{,arg2{,arg3{,……}}}}) 参数说明 dbName 数据源名称 sqlStatement 合法的调用存储过程的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式,如果是输出 结果集的参数,对应的参数表达式写成"@@result" 返回值: 一组数据的集合,由结果集的第一个字段决定数据类型,如果结 果集是多列,只返回第一列 示例: 例1:call2("demo","{call ResultSet (?,?,?)}","@@result","000001",A2) 表示对数据源demo执行存储过程ResultSet,第一个输出参数输出 结果集, 第二、三个参数传入"000001",A2作为参数值
缺省引用规则
缺省情况下,在单元格中的运算中可以引用其它单元格的 值,直接写单元格名即可,这样的运算称为格间运算,这 种引用称为缺省的引用规则。
单元格扩展时,附属单元格可以动态引用主单元格的值 随着主单元格扩展,附属单元格被复制到不同的位置,对 主单元格的引用也相应的变化 一般情况下,被引用单元格往往是当前格的主格,或者与 当前格有相同的一级主格,或者是固定格。 举例:多数据集报表.raq
第30页
多层扩展
多个单元格同时进行扩展时,一个扩展格可以既 是某些格的主格又是另一个扩展格的附属格,这 种情况下就形成多层扩展的情况。
一级主格即为直接主格,一级附属格即为直接附 属格
第31页
练习
做一个多层扩展报表, 首先按2005-2007年度 扩展,然后每一年又扩 展出四个季度,每个季 度对应扩展对应的三个 月。
第32页
根格
根格即报表首格,用(`0)表示
举例(计数.型-运算规则
缺省主格认定 人为改变主格规则 扩展变化规则 缺省引用规则
第34页
缺省主格认定
单元格横向扩展时,上方横向扩展单元格缺省为 它的上主格,下方单元格缺省为它的附属格;如 果上方没有横向扩展格,则上主格缺省为 `0 格
第26页
1.2.3 主格模型
基本概念 运算规则
第27页
主格模型-基本概念
主格和附属格 左主格和上主格 多层扩展 直接主格和直接附属格 根格 (`0)
第28页
主格与附属格
单元格进行扩展的过程中,缺省情况下,相对于其右(下 )边的单元格而言,扩展格是主动复制的,被称为其它格 (其右/下的格)的主格,而其右(下)的单元格是被动 跟随复制的,被称为扩展格的附属格或子格。 只有扩展格才能是其它格的主格!
第38页
统计规则
单元格扩展时,附属单元格如采用缺省的聚集表 达式,则缺省统计所属主格区域内所有目标单元 格的值 例:Sum(C1{})
第39页
练习
多层分组汇总报表 要求:
该报表依次以客户类别, 客户名称进行分类,显示各 个客户对应的合同号和合同 金额,并对每个客户的合同 金额进行小计,对每类客户 的合同金额进行合计,对所 有客户的合同金额进行总计
第36页
扩展变化规则
单元格进行横向扩展时,会将其同列的上主格拉 大,把其附属单元格复制,特别地,如果其某个 上主格不在同列上,则该上主格不会被拉大; 举例 单元格进行纵向扩展时,会将其同行的左主格拉 大,把其附属单元格复制,特别地,如果其某个 左主格不在同行上,则该左主格不会被拉大。 举例
第37页
Cellx [] 表示当前层次坐标下的目标单元格 举例:E6[]
表达式规则
=C3[A3:1,B3:2;C1:1,C2:3] Cellx [Lk:lk, Lk-1:lk-1,……L1:l1;Tk:tk, Tk-1: tk-1,……T1: t1] 例子 =C3[A3:3,B3:1;C1:2,C2:2]
=C3[A3:5,B3:1;C1:4,C2:1]
第43页
位移坐标
用于标识相对于当前格附近的单元格 缺省写法
Cellx [±n] 表示最近主格下的位移 举例:E6[-1]
表达式规则
Cellx [Lk:±lk, Lk-1:±lk-1,……L1:±l1;Tk :±tk, Tk-1 :±tk1,……T1 :±t1] 例子
第44页
练习
同期比 要求:
第40页
练习
相关主题