润乾报表开发 基础教程_第1页
润乾报表开发 基础教程_第2页
润乾报表开发 基础教程_第3页
润乾报表开发 基础教程_第4页
润乾报表开发 基础教程_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

润乾报表开发 基础教程 报表示例展示报表示例开发报表部署 本章内容 报表示例展示 网格报表 网格报表预览效果 报表文件 报表示例展示 网格报表带参数 网格报表预览效果 参数报表文件 报表示例展示 分组报表 分组报表预览效果 报表文件 报表示例展示 分组报表2 分组报表预览效果 报表文件 报表示例展示 交叉报表 交叉报表预览效果 报表文件 报表示例展示 交叉报表2 交叉报表预览效果 报表文件 报表示例展示 交叉报表3 交叉报表预览效果 报表文件 报表示例展示 主子报表 主子报表预览效果 报表文件 报表示例展示 双轴柱线图 双轴柱线图预览效果 报表文件 报表示例展示 多层交叉报表 多层交叉预览效果 报表文件 报表示例展示 纵向交叉分片 纵向交叉分片 报表文件 报表示例展示 横向交叉分片 横向交叉分片 报表文件 报表示例展示 动态静态结合 动态静态结合 报表文件 报表示例展示 复杂同期比 复杂同期比 报表文件 报表示例展示 排名 排名报表演示 报表文件 报表示例展示 重叠分组 重叠分组演示 报表文件 报表示例展示 条件分组 条件分组演示 报表文件 报表示例展示 按段分组 按段分组演示 报表文件 报表开发 流程图 定义数据源1 配置 数据源2 连接数据源 报表开发 连接数据源 报表开发 入门报表 制作一张最简单的报表1 B2单元格 to 1 6 把第2行垂直拓展成6行数据 B列之后的数据进行复制 B列之前的数据不变 报表开发 网格报表 使用向导方式创建报表第一步 连接数据源 报表开发 网格报表 第二步 新建报表文件 新建报表 报表开发 网格报表 第三步 选择数据表 报表开发 网格报表 第四步 选择数据列 报表开发 网格报表 第五步 显示列 报表开发 网格报表 第六步 选择网格报表 报表开发 网格报表 报表页面第一行列名改成中文并设置居中 报表开发 网格报表 第七步报表预览 报表开发 网格报表 select 函数说明 从数据集的当前行集中选取符合条件的记录语法 datasetName select desc exp filter exp sort exp rootGroupExp datasetName select 适用于不需排序或数据集中已排好序参数说明 select exp 要选择的字段列名 列号 也可以是表达式 列号用 n表示 例如 0代表第0列 1代表第1列 依此类推desc exp 指定数据排序的顺序 true表示降序排列 false表示升序排列 filter exp 数据过滤表达式 如果全部选出 则此参数省略 仅用 占位 sort exp 数据排序表达式 当此项为空时先检查desc exp是否为空 如果为空 则不排序 否则使用select exp排序 返回值 一组数据的集合 数据类型由select exp的运算结果决定函数示例 例1 ds1 select name 从数据源ds1中选取name字段列的所有值 不排例2 ds1 select 2 true 从数据源ds1中选取第二个字段列的所有值并降序排例3 ds1 select name false sex 1 从数据源ds1中选取性别为男性 1 的name字段列的值并升序排列例4 ds1 select name true sex 1 id 从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列 报表开发 网格报表 增强数据可读性 性别和学历字段显示汉字 第一步 增加一个数据集ds2 SELECTDEGREE ID DEGREE NAMEFROMDEGREE第二步 定义表达式1 将A2单元格表达式修改为 ds1 Select int EMPID false 该表达式是将字符串型的EMPID转换成整数 再做排序操作 2 设置C2单元格的显示格式为 yyyy年MM月dd日3 设置F2单元格的显示格式为 0 004 设置D2的显示值为 map list 1 2 list 男 女 5 设置E2的显示值为 ds2 select1 name id value 报表开发 网格报表 Int函数说明将字符串或数字转换成整数语法 int string int number 参数说明 string需要转换的字符串表达式number数字 如果带有小数位 转换后小数位被截掉返回值 32位整数示例 例1 int 100 返回 100例2 int 100 1 返回 100例3 int 100 9999 返回 100 报表开发 网格报表 map函数说明显示值对照表函数 从对照表中找出当前单元格对应值的显示值 没有则返回null语法 map valueListExp displayListExp 参数说明 valueListExp真实值列表 可以是可扩展单元格或结果为集合列表的表达式displayListExp显示值列表 可以是可扩展单元格或结果为集合列表的表达式真实值列表和显示值列表一一对应返回值 字符型 和当前格真实值对应的显示值示例 例1 map to 1 3 list 男 女 不定 例2 map arg1 arg2 其中arg1为1 2 3组成的参数组 arg2为 男 女 不定 组成的字符串组例3 map list 1 2 3 list 男 女 不定 报表开发 网格报表 Select1函数说明从数据集中按顺序检索到符合过滤条件的第一条记录 返回其selectExp值语法 datasetName select1 selectExp filterExp rootGroupExp 参数说明 selectExp要选择的字段列名 列号 也可以是表达式 列号用 n表示 例如 0代表第0列 1代表第1列 依此类推filterExp过滤条件rootGroupExp是否root数据集表达式返回值 数据类型不定 由selectExp的运算结果决定特别说明 当对数据集运用过滤条件后确定只剩一条记录时 虽然select的运算结果一样 但是select1运算效率高 因为他只要找到符合条件的记录 就不继续检索了 而select要检索完所有的记录才返回 示例 例1 ds1 select1 name 返回数据集ds1中第一条记录的name字段值例2 ds1 select1 name score 90 从数据集ds1中检索出成绩大于90的记录 返回第一条记录的name字段值 报表开发 网格报表 Value函数说明取得当前单元格的值语法 value 返回值 当前单元格的值 报表开发 网格报表 增加页眉 页脚 标题 表头 表尾等 第一步插入行 并设置行类型 报表开发 网格报表 第二步设置表达式 报表开发 网格报表 now函数说明函数说明 获得系统此刻的日期时间语法 now 返回值 日期时间 报表开发 网格报表 设置预警条件 使奖金高于15000元的员工信息用红色显示 第一步选中第四行 第二步双击前景色表达式 第三步设置表达式 if ds1 BONUS 15000 52429 16777216 预览结果 报表开发 网格报表 if函数说明根据布尔表达式的不同计算结果 返回不同的值 本函数从左到右计算 先出现的布尔表达式先算 如果出现为true的表达式 则返回相应的结果 后面的不再计算 如果没有一个布尔表达式为true 而且有缺省值表达式 则返回缺省值 否则返回null 语法 if boolExp1 valueExp1 boolExp2 valueExp2 boolExp3 valueExp3 defaultExp 参数说明 boolExp n 布尔表达式 如果结果为真 则返回对应的值表达式计算结果valueExp n 值表达式 和布尔表达式一一对应defaultExp缺省值表达式 如果所有布尔表达式结果都为假 则返回本表达式计算结果返回值 数据类型不定 由valueExp n 的运算结果决定 示例 例1 if value 100 65536 value 80 16776961 14336 表示当前格的值大于100时 返回 65536颜色值 当前格的值小于等于100且大于80时 返回 16776961颜色值 否则返回 14336颜色值 报表开发 网格报表 增加动态背景色在第四行设置背景色表达式if row 2 0 52 3342388 预览效果 报表开发 网格报表 row函数说明取得当前单元格所在行的行号语法 row cellExp 参数说明 cellExp单元格表达式 不写表示当前单元格 返回值 整数举例 在第三行单元格中写入 row 返回值为3 如果第三行存在纵向扩展格 则行号依次改变 报表开发 网格报表 内建数据所谓内建数据集 是把报表中的数据存储到报表模板里 浏览报表的时候不用连接数据库了 转为内建数据 配置 数据集 转为内建 报表开发 网格报表 参数的使用 增加4个参数name bonus birthday sex配置 参数 添加设置检索条件 EMPLOYEE EMPNAMElike andEMPLOYEE BONUS andEMPLOYEE BIRTHDAY andEMPLOYEE SEX 报表开发 网格报表 增加检索条件中对应 的参数预览输入参数查询出姓名中包含 小 字 奖金高于200 出生日期大于 1960 01 01 且性别为 男 的员工信息 报表开发 网格报表 效果页面 报表开发 网格报表 此时条件为空时查询不出数据 要实现条件为空时显示所有数据 需呀修改检索条件和参数设置 将 检索条件 修改为 EMPLOYEE EMPNAMElike or isnull and EMPLOYEE BONUS or isnull and EMPLOYEE BIRTHDAY or isnull and EMPLOYEE SEX or isnull 报表开发 网格报表 增加 对应的参数 报表开发 网格报表 报表预览 报表开发 网格报表 调整单元格宽度 由上图可见生日列数据并没有全部显示出来 解决方法有3种 1 手动调整列宽 2 尺寸调整方式选择按单元格内容扩展3 自动换行选中 报表开发 网格报表 选择按单元格内容扩展后预览 报表开发 网格报表 参数模板设计第一步文件 新建报表 选择填报或参数表单 生成空白报表 报表开发 网格报表 设置页面显示信息 并删除没用单元格 分别对C2 C3 E2 E3设置填报属性右键单元格 填报属性 报表开发 网格报表 C2单元格填报属性E2单元格填报属性 报表开发 网格报表 C3单元格填报属性 报表开发 网格报表 E3单元格填报属性 报表开发 网格报表 设置C2 C3 E2 E3的web变量名C2变量名E2变量名C3变量名E3变量名 报表开发 网格报表 报表与参数模板结合发布结合采用命名关联方式 参数模板的名字为报表模板后加 arg例如 报表模板名为 报表开发test raq 报表参数名为 报表开发test arg raq 报表开发 网格报表 报表中参数传递流程 报表开发 分组报表 第一步 新建报表 文件 新建报表 选择普通报表 下一步 报表开发 分组报表 第二步 选择表 指定模式选择 全部 找到 客户 表 报表开发 分组报表 第三步 选择字段 在数据字段选项卡中选择统计的字段 报表开发 分组报表 第二 三步可以通过 语法 选项卡中直接输入SQL语句代替 报表开发 分组报表 第四步 选择报表类型 确定表和字段后选择报表类型为分组报表 报表开发 分组报表 第五步 选择分组字段 将城市字段直接拖进分组定义栏 点生成分组报表 报表开发 分组报表 分组报表模板及预览效果 报表开发 分组报表 group函数说明根据分组表达式 从数据集中选出一组组集 语法 datasetName group selectExp filterExp 适用于不需要排序或数据集中已排好序datasetName group selectExp descExp filterExp sortExp groupSortExp groupDescExp rootGroupExp 参数说明 selectExp选出的分组表达式 可以是字段列名 列号 也可以是表达式 列号用 n表示 例如 0代表第0列 1代表第1列 依此类推descExp分组前记录的排序顺序 true为逆序 false为顺序filterExp过滤表达式sortExp分组前记录的排序依据表达式groupSortExp分组后对组的排序表达式 一般是汇总运算的表达式 如组合计等groupDescExp组排序顺序 true为逆序 false为顺序rootGroupExp是否root数据集表达式返回值 一组数据的集合 数据类型由selectExp的运算结果来决定 报表开发 分组报表 示例 例1 ds1 group class 把数据集ds1中所有记录按照class字段进行分组 并返回每组的class值组成的集合例2 ds1 group class true 把数据集ds1中所有记录按照class字段降序排列 然后根据class进行分组 并返回每组的class值组成的集合例3 ds1 group class false sex 1 从数据源ds1中选取性别为 1 的记录 按照class字段升序排列 然后根据class进行分组 并返回每组的class值组成的集合例4 ds1 group class true sex 1 id 从数据源ds1中选取性别为 1 的记录 按照id字段降序排列 然后根据class进行分组 并返回每组的class值组成的集合例5 ds1 group 省份 true sum 工业产值 true 对数据集ds1按照省份进行分组 分组后求出每组的sum 工业产值 然后按照这个汇总值对组进行逆序排列 报表开发 分组报表 左主格 单元格进行纵向扩展时 我们称其为其右边格子的左主格 左主格属性可以默认缺省 也可以人为的改变 单元格扩展时会把其所有的附属单元格都进行复制 带动着一起扩展 在分组报表例子中 单元格C2 D2的左主格是B2 因此当B2单元格进行扩展时 带动着其他所有格子一起复制 由此形成了一条记录就是一页报表的效果 B2的左主格是A2 A2的左主格默认是自己 报表开发 分组报表 第六步 增加地区一列多层次分组1 修改数据集配置 数据集 编辑ds1 增加 地区 字段 报表开发 分组报表 第六步 增加地区一列多层次分组2 添加一列选择第一列 右键选择插入列 报表开发 分组报表 第六步 增加地区一列多层次分组3 输入表达式A1单元格 地区 A2单元格 ds1 Group 地区 false A2单元格的数据可以在右下角的数据集栏中找到地区字段直接拖动 单选按钮选择分组 报表开发 分组报表 第六步 增加地区一列多层次分组4 美观格式增加边框 设置居中 报表开发 分组报表 第七步 增加汇总统计1 追加数据行在最后一行追加数据行 报表开发 分组报表 第七步 增加汇总统计2 合并单元格A2 A3合并单元格 C3 E3合并单元格3 输入表达式B2单元格 公司数C3单元格 count C2 报表开发 分组报表 count函数说明 对可扩展单元格或集合表达式进行计数语法 count expression containNull 参数说明 expression需要被计数的单元格或表达式 一般为可扩展单元格或集合表达式containNull缺省为true 表示对null元素也进行计数 false则相反返回值 整数示例 例1 count A1 B10 false 以当前格为基格计算A1和B10之间总共有几个单元格 如果单元格的值为空则不进行计数例2 count A1 1 B10 3 计算A1扩展出来的第一个格和B10扩展出来的第三个格之间总共有几个单元格例3 count arg1 其中arg1是参数组 统计arg1中有几个数据例4 count B1 表示求得当前主格扩展区域内所有扩展后的B1单元格的个数例5 count B1 0 表示求得根坐标下所有扩展后的B1单元格的个数 报表开发 分组报表 第八步 增加三维饼形图1 追加数据行合并最后一行 调整成方形大小 右键单元格选择统计图 报表开发 分组报表 第八步 增加三维饼形图2 为统计图设置数据分类轴 A2系列名 B3系列值 C3图形特性图形标题 地区公司数统计图图中显示数据 百分比 报表开发 分组报表 预览效果 报表开发 交叉报表 第一步 新建报表文件 新建报表第二步 选择数据表 报表开发 交叉报表 第三步 选择数据字段 报表开发 交叉报表 第四步 选择报表类型选择交叉报表 报表开发 交叉报表 第五步 报表定义列 学位 行 等级 汇总 计数 报表开发 交叉报表 第六步 美化外观单元格显示边框 居中 报表开发 交叉报表 第七步 设置显示值1 增加数据集ds2 SELECTDEGREE ID DEGREE NAMEFROMDEGREE2 增加数据集ds3 SELECTTITLE ID TITLE TITLENAMEFROMTITLE3 将B1单元格的显示值设为 ds2 select NAME ID value 此时B1单元格出现一个红色的箭头 选择B1单元格 右侧属性的 扩展方式 显示为 横向扩展 4 将A3单元格的显示值设为 ds3 select TITLENAME ID value 设置单元格斜线 选中单元格 点击属性下拉菜单中的边框设置 设上斜线属性 然后直接在单元格里输入分类字段 字段间用逗号隔开 显示顺序 一个斜线为 下 上 两个斜线为 下 上 中 报表开发 交叉报表 报表预览 报表开发 交叉报表 第八步 多层交叉1 修改数据集ds1添加性别一列 2 在B列前插入一列 3 合并A1 B1 B2单元格4 在B3单元格输入表达式 ds1 Group sex false 设置显示值为 map list 1 2 list 男 女 报表开发 交叉报表 效果预览 报表开发 交叉报表 list函数说明函数说明 获得一个枚举的数据集合语法 list valueExp1 valueExp2 valueExp3 参数说明 valueExp n 可以是常数或表达式 也可以是集合表达式返回值 一组枚举数据的集合示例 例1 list 1 3 5 7 9 例2 list abc def ghj 例3 list arg1 to 1 3 a b c 假设arg1是个整数组 其值为7 8 9 那么该表达式的结果值为 7 8 9 1 2 3 a b c 报表开发 交叉报表 第九步 汇总统计1 分别追加一行 一列数据 2 合并单元格D1 D2 A3 A4 A5 B53 在D3 D4 D5 C3 C4单元格输入表达式 sum C3 4 美化数据 报表开发 交叉报表 预览 报表开发 交叉报表 Sum单元格函数说明函数说明 对可扩展单元格或集合表达式进行求和语法 sum expression sum cellExp exp 参数说明 expression需要被求和的单元格或表达式 一般为可扩展单元格或集合表达式cellExp单元格或单元格集合 以cellExp里的单元格为当前格计算表达式expexp表达式返回值 实数或者字符型 由被汇总的单元格数据类型决定示例 例1 sum A1 A10 求出单元格A1至A10的合计值 被统计单元格可以是数值型也可以是字符型例2 sum arg1 其中arg1是参数组 求出arg1中所有元素的合计值例3 sum B1 表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值例4 sum B1 0 表示求得根坐标下所有扩展后的B1单元格的合计值例5 sum A1 0 B1 C1 计算分别与每个A1相对应的B1 C1的和的合计值 报表开发 交叉报表 第十步 添加柱形统计图1 追加数据行调整高度2 右键单元格选择统计图3 设置数据分类轴值为 C1系列名称为 A3系列值为 C4横轴标题 学历纵轴标题 人数显示数据 统计值显示数据格式 0 报表开发 交叉报表 预览 数据集函数 1 ds select 2 ds select1 3 ds count 4 ds dcount 单元格函数 1 if 8 to 2 count 9 list 3 sum 10 map 4 avg 5 value 6 row 7 disp 报表开发 报表常用函数 时间日期函数 1 now 2 lastday 3 lastmonth 4 month 5 monthbegin 6 monthend 字符串函数 1 like 数据类型转换 1 int 2 str 报表开发 报表常用函数 报表作为一个单独项目发布1 本地应用 发布 发布应用 报表部署 向导部署 2 选择发布包存储的位置在Tomcat下webapps中新建一个项目文件夹名为demo选择此目录 报表部署 向导部署 3 选择授权文件Web应用选择demo发布整个项目选择授权文件 报表部署 向导部署 4 选择授权文件添加数据源名称选择数据库类型指定字符集类型确定完成 报表部署 向导部署 部署完成后文件及文件夹说明 报表部署 向导部署 数据源文件路径 Tomcat conf Catalina localhost文件名 项目名 xml文件内容 报表部署 配置文件 Web xml文件路径 Tomcat webapps demo WEB INFreportServletcom runqian util webutil SetContextServletconfigFile WEB INF reportConfig xml2reportServlet reportServlet WEB INF runqianReport4 tld WEB INF runqianReport4 tld 报表部署 配置文件 reportConfig xml文件路径 Tomcat webapps demo WEB INFlogConfig WEB INF runqianReportLog propertieslicense天元网络Server2012 06 01V4 0Windows licreportFileHome reportFilessemanticsFile WEB INF runqianSemanticFile xmlJNDIPrefixjava comp env 报表部署 配置文件 dataSourceDemo ORACLE 0 GBK GBK 0 jspCharsetGBKalwaysReloadDefineyescachedParamsTimeout120cachedReportDirE work report cached 报表部署 配置文件 cachedIdPrefixAcachedReportTimeout120maxCellNum100000maxConcurrentForReport10maxWaitForReport10 报表部署 配置文件 runqianReportLog properties文件路径 Tomcat webapps demo WEB INF 日志级别可为OFF ERROR WARN INFO DEBUG ALL 优先级依次降低 若为OFF则不输出任何 日志信息 若为INFO 则只输出ERROR WARN INFO等级别的信息 依次类推 log4j logger runqianReportLogger DEBUG LOG1 LOG2 输出日志到系统控制台log4j appender LOG1 org apache log4j ConsoleAppenderlog4j appender LOG1 layout org apache log4j PatternLayoutlog4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论