报表使用手册
XX股份有限公司
中国 济南
目录
1
2 概述 .............................................................................................................................. - 3 - 安装 .............................................................................................................................. - 3 -
2.1 准备好安装程序 .......................................................................................... - 3 -
2.2 安装中的选项 .............................................................................................. - 3 -
2.3 授权文件配置 .............................................................................................. - 4 - 报表制作 ...................................................................................................................... - 5 -
3.1 报表制作要求 .............................................................................................. - 5 -
3.2 制作一张报表的步骤 .................................................................................. - 5 -
3.3 启动报表设计器 .......................................................................................... - 6 -
3.4 连接数据源 .................................................................................................. - 7 -
3.4.1 数据源对话框 ......................................................................................... - 7 -
3.4.2 编辑数据源 ............................................................................................. - 7 -
3.4.3 注意事项 ................................................................................................. - 9 -
3.5 设计报表格式 .............................................................................................. - 9 -
3.5.1 格式设计 ................................................................................................. - 9 -
3.5.2 需注意事项 ........................................................................................... - 10 -
3.6 定义参数 .................................................................................................... - 10 -
3.6.1 参数的编辑 ........................................................................................... - 10 -
3.6.2 常用参数举例 ....................................................................................... - 11 -
3.7 定义宏 ........................................................................................................ - 11 -
3.7.1 宏的编辑 ............................................................................................... - 11 -
3.7.2 常用宏举例 ........................................................................................... - 12 -
3.8 建立数据集 ................................................................................................ - 12 -
3.8.1 数据集的编辑 ....................................................................................... - 12 -
3.8.2 常用数据集举例 ................................................................................... - 13 -
3.9 设置单元格属性 ........................................................................................ - 14 -
3.9.1 数据集在单元格中应用 ....................................................................... - 14 -
3.9.2 显示格式 ............................................................................................... - 14 -
3.9.3 设置预警条件 ....................................................................................... - 15 -
3.9.4 增加动态背景色 ................................................................................... - 15 -
3.9.5 按参数隐藏列 ....................................................................................... - 16 -
3.9.6 主格应用 ............................................................................................... - 16 -
3.10 报表预览 .................................................................................................... - 16 -
3.11 报表发布 .................................................................................................... - 17 - 报表部署 .................................................................................................................... - 18 -
4.1 部署位置 .................................................................................................... - 18 -
4.2 Web中显示................................................................................................ - 18 - 重要概念 .................................................................................................................... - 19 -
5.1 数据源 ........................................................................................................ - 19 -
5.2 数据集 ........................................................................................................ - 19 -
5.3 参数 ............................................................................................................ - 19 -
5.4 宏定义 ........................................................................................................ - 20 - 3 4 5
6 5.5 单元格 ........................................................................................................ - 21 - 5.6 主格 ............................................................................................................ - 21 - 常用函数 .................................................................................................................... - 23 -
6.1 数据集函数 ................................................................................................ - 23 -
6.1.1 select() .................................................................................................... - 23 -
6.1.2 select1() .................................................................................................. - 23 -
6.1.3 count() .................................................................................................... - 24 -
6.2 单元格函数 ................................................................................................ - 24 -
6.2.1 if() ........................................................................................................... - 24 -
6.2.2 row() ....................................................................................................... - 24 -
6.2.3 value() .................................................................................................... - 24 -
6.3 字符串函数 ................................................................................................ - 24 -
6.3.1 pos() ....................................................................................................... - 24 -
6.3.2 mid() ....................................................................................................... - 24 -
6.4 数据类型转换函数 .................................................................................... - 24 -
6.4.1 dateTime() .............................................................................................. - 24 -
6.4.2 str() ......................................................................................................... - 24 -
1 概述
该文档主要满足iES-E200电量采集系统中自定义报表制作编写。
2 安装
2.1 准备好安装程序
2.2 安装中的选项
点击安装程序,安装过程中会出现一下选择界面,请注意选择;
2.3 授权文件配置
启动报表设计器(启动方式参加3.2),点击“系统/数据源”菜单,弹出窗口如下图所示:
3 报表制作
使用自定义报表的一个显著特点需要显示的对象具有某一项相同的属性,若没有相同属性可以人工设置相同属性;
方法一:对对象进行编码设置(可以利用母线、变压器编码信息进行人工设置相同属性); 方法二:可以将对象添加到其他电量公式中;
3.1 报表制作要求
支持非自然日查询; 支持非自然月查询; 支持表码异常提示; 日、多日、月报表通用; 表码小数位数显示为4位;
3.2 制作一张报表的步骤
3.3 启动报表设计器
启动报表设计器的方式有三种方法:
方法一:在安装目录(比如默认的安装目录:C:\Program Files\reportHome\bin)寻找startup.bat的程序文件,双击运行即可;
方法二:从程序组中选择:开始 -> 程序 -> 润乾报表 -> 润乾报表设计器
方法三:安装完润乾报表之后,在桌面上会出现润乾报表设计器的快捷方式,双击即可。
润乾报表设计器的主界面,如下图所示:
3.4 连接数据源
3.4.1 数据源对话框
点击“配置/数据源”菜单,进入以下对话框:
3.4.2 编辑数据源
如果有已编辑好的数据源,点击“连接”按钮。
如果没有已编辑好的数据源,点击“新建”按钮,增加一个数据源,数据源的编辑界面如下:
选择“关系型数据库”,点击“确定”按钮,进入下面的页面:
在这里,我们将数据源名称命名为jdbc/RCCEEI,数据库类型选择ORACLE,客户端字符集选择GBK,数据字符集选择GBK,驱动程序选择oracle.jdbc.driver.OracleDriver,数据源URL为jdbc:oracle:thin:@数据库IP:1521:db,用户为XXX,密码为?????,点击“确定”按钮,建立此数据源.
至此,数据源建立完毕,点击“配置—数据源”,选中要连接的数据源,点击“连接”按钮,连接词数据源。
3.4.3 注意事项
需要和tomcat连接池配置一致:
3.5 设计报表格式
3.5.1 格式设计
方法一:新建报表
新建报表并根据客户需求设计报表格式包含标题、报表头、数据区,如下图:
方法二:导入Excel文件
点击“文件/打开”菜单,弹出窗口如下图所示:
选择客户提供的报表,点击打开。 方法三:根据现有报表修改
打开现有的报表文件,修改该文件使其符合客户要求; 3.5.2
需注意事项
边框设置
对齐设置(字符左对齐,数字右对齐,标题、序号居中) 隐藏不显示的单元格(行属性和单元格属性向冲突时行属性优先) 删除没有用到的单元格
3.6 定义参数
3.6.1
参数的编辑
点击“配置/参数”菜单,弹出窗口如下图所示:
可以对参数进行添加、修改、删除等操作;参数的值是从网页传递过来,此处参数名称应和网页一致; 3.6.2
常用参数举例
st:starttime简拼表示报表显示数据的开始时间,目前用秒数表示; et:endtime简拼表示报表显示数据的结束时间,目前用秒数表示; substaid:substationid简拼表示变电站ID;
strhour:非自然日的开始时间的分钟数,8:00表示为:480; strdatetype:报表的时间类型,1为日报表,2为月报表,3为多日;
lst:laststarttime简拼表示报表显示数据的开始时间的去年同期时间,目前用秒数表示; let:lastendtime简拼表示报表显示数据的结束时间的去年同期时间,目前用秒数表示; yearsecs:表示报表显示数据的开始时间的年初时间,目前用秒数表示;
lyearsecs:表示报表显示数据的开始时间的上一年的年初时间,目前用秒数表示;
3.7 定义宏
3.7.1
宏的编辑
点击“配置/宏”菜单,弹出窗口如下图所示:
可以对宏进行添加、修改、删除等操作;宏的赋值可以使用具体的数字、参数或者表达式; 3.7.2
常用宏举例
1、对参数进行处理的宏
startyear= mid(str(dateTime(st*1000)),0,4);表示开始时间的年份。 endyear= mid(str(dateTime(et*1000)),0,4) ;表示开始时间的月份。 startmonth= mid(str(dateTime(st*1000)),5,7);表示结束时间的年份。 endmonth= mid(str(dateTime(et*1000)),5,7);表示结束时间的月份。 2、在数据集中进行替换的宏
3.8 建立数据集
3.8.1
数据集的编辑
点击“配置/数据集”菜单,弹出窗口如下图所示:
可以对数据集进行添加、删除、修改等操作;常见数据集包括描述信息和历史数据数据集;
描述信息数据集:计量点数据集、母线数据集、主变数据集、线路数据集、CT数据集等;
历史数据数据集:表码数据集、电量数据集等; 3.8.2
常用数据集举例
母线供电量开关数据集:
select a.id as id,a.name, a.parts_id as cparts_id, b.parts_type,b.parts_id as parts_id,c.name as switch_name,b.start_date,b.end_date ,c.voltage_level as voltage_level,b.parts_para as parts_para,b.cal_sign as cal_sign,d.voltage_level as gvoltage_level from calc_desc a,calc_para b,switch c ,generatrix d
where a.id=b.calc_id and a.parts_type=9 and a.parts_id =d.id and a.parts_para=0 and c.id=b.parts_id and d.substation_id=${substaid}
and ((b.start_date=${starttime})or(b.start_date=${endtime}))
CT数据集:
select mp_id,run_date,coef from ct where run_date
select b.parts_id as parts_id from calc_desc a,calc_para b,switch c ,generatrix d where a.id=b.calc_id and a.parts_type=9 母线公式中的计量点
and a.parts_id =d.id and c.id=b.parts_id and d.substation_id=${substaid}
and (//公式时效判断
(b.start_date=${starttime}) or (b.start_date=${endtime}) )
) order by run_date desc
电量数据集:
SELECT mp_id,power_type,sum(total_value) as total_value from (
select mp_id, mod(power_type,10)+10 as power_type,sum(total_value) as total_value from mp_day_e${year} WHERE datetime>=${starttime} and datetime
and mp_id in(
select b.parts_id as parts_id from calc_desc a,calc_para b,switch c ,generatrix d where a.id=b.calc_id and a.parts_type=9 and a.parts_id =d.id and c.id=b.parts_id and d.substation_id=${substaid}
)
group by mp_id,power_type )
group by mp_id,power_type
3.9 设置单元格属性
3.9.1
数据集在单元格中应用
描述数据集一般只是简单的在单元格中进行纵向或横向显示;
如:某一个单元格表达式= 供电量开关名称.select(switch_name,parts_id==D6) 表示从供电量开关名称数据集中获取parts_id==D6的计量点名称,并显示; 举例:
if(like(ct倍率.select1(coef,mp_id==D6),"*/*"),
int(mid(ct倍率.select1(coef,mp_id==D6),0,pos(ct倍率.select1(coef,mp_id==D6),"/"))) / int(mid(ct倍率.select1(coef,mp_id==D6),1+pos(ct倍率.select1(coef,mp_id==D6),"/")) ),
ct倍率.select1(coef,mp_id==D6)
) * 供电量开关名称.select1(voltage_level,parts_id==D6)/100 3.9.2
显示格式
单元格属性列表中第二项是显示格式,用来设置值在报表展现时的显示格式。
举例:如果该单元格的值是一个数值型的数据1.33333,我们希望显示的时候只显示小数点后两位小数,这个就是通过显示格式完成的,可以在显示格式属性值中编辑#0.00,预览可以发现,显示的数值就变成了1.33。
也可以双击显示格式属性值,在弹出的显示格式对话框中选择你需要的格式,确定即可,如下图所示:
.
3.9.3
设置预警条件
如异常表码进行进行标红预警。
选中对应的单元格,并设置前景色表达式为:if(L7==1,,-16777216,-65536); 3.9.4
增加动态背景色
使单双行显示不同的背景色。
选中第四行,设置第四行的背景色表达式为:if(row()%2==0,-3342337,-1)该表达式意思是当行数为偶数行时背景色显示为浅蓝色,当行数为奇数行时背景色显示为白色
3.9.5
按参数隐藏列
在报表参数中,传入某个数值后,将某一列或几列隐藏,例如当报表日期大于2009年1月1日,则隐藏几列,可以选择该列,在右边的属性中,找到“是否可见”,在表达式中填写if(@reportdate>"20090101",false,true),即可按照输入参数隐藏列。 3.9.6
主格应用
主要说明在同一张报表中有几个同一类型数据区(如在一张报表中分别显示该变电站能所有母线的计算分量的详细信息);可以根据实际情况分别对多条母线分别设置单元格属性,更方便的是采用人工干预主格的方式实现;
以下图为例说明:
1. 首先在A16单元格中设置需要显示的母线的ID; 2. 在17行到27行完成一条母线的各类数据的赋值; 3. 从17行到27行设置左主格为
A16;
3.10 报表预览
报表预览主要用于验证报表是否正确,点击工具栏中的预览图标,
弹出参数赋值对话框,根据实际情况对各个参数赋值后,点击“确定”按钮;如果预览界面正常,说明我们报表建立成功
3.11 报表发布
参见报表部署。
4 报表部署
4.1 部署位置
目前在下放置一些常见的报表模板部署时可以根据实际情况进行删减; 目录结构
---dayreport //放置日报表模板
---company //放置不需要选择厂站的日报表模板 ---substation//放置需要选择厂站的日报表模板 ---monthreport //放置月报表模板
---company //放置需要选择厂站的月报表模板
---substation//放置需要选择厂站的月报表模板
4.2 Web中显示
在web菜单“数据浏览”项中的“应用日报表”对应自定义日报表的显示、“应用月报表”对应自定义月报表的显示;
5
重要概念
5.1 数据源
顾名思义,数据的来源。在数据源中存储了所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
数据源标准属性包括:
1、databaseName String 数据库名称,即数据库的SID。 2、dataSourceName String 数据源接口实现类的名称。 3、description String 对数据源的描述。
4、networkProtocol String 和服务器通讯使用的网络协议名。 5、password String 用户登录密码。 6、portNumber 数据库服务器使用的端口。 7、serverName String 数据库服务器名称。 8、user String 用户登录名。
如果数据是水,数据库就是水库,数据源就是连接水库的管道,终端用户看到的数据集是管道里流出来的水。
5.2 数据集
数据集是包含数据表的对象,可以在这些数据表中临时存储数据以便在应用程序中使用。如果应用程序要求使用数据,则可以将该数据加载到数据集中,数据集在本地内存中为应用程序提供了待用数据的缓存。即使应用程序从数据库断开连接,也可以使用数据集中的数据。数据集维护有关其数据的更改的信息,因此可以跟踪数据更新,并在应用程序重新连接时将更新发送回数据库。
5.3 参数
在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。这就需要通过参数的形式控制报表中的数据。
下面,根据前面的报表,我们加入参数使它变成一张更灵活的报表。
第一步:单击主菜单中的【配置】->【参数】。
弹出“参数编辑”窗体,如下图所示:
第二步:点击【增加】按钮,新增一个参数,默认名称为“arg1”,名称可根据自己的需要来命名。这里我们把【名称】和【描述】分别改成“name”和“员工姓名”,【数据类型】我们选择默认的“字符串”。如下图所示:
同样的方法增加一个“奖金”参数,【数据类型】设置为“数值型”。
同样的方法增加一个“出生日期”参数,【数据类型】设置为“日期型”。
同样的方法增加一个“性别”参数,【数据类型】设置为“字符串”。
注:
参数名称尽量用英文,中文容易在部署的时候出现乱码,徒增烦恼。
在sql语句中不能使用参数
5.4 宏定义
宏是一个没有数据类型的字符串标识,在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的宏名替换成宏值。
利用宏可以在报表中动态的进行表达式的替换,根据用户传入的不同宏值,在报表中可以计算出不同的表达式结果,从而得到不同的报表信息,这样用户就不用根据不同的情况编制许多不同的报表了,大大减轻了用户的工作量。此外我们还可以利用宏来实现按一个数据集的任意字段查询,这是利用参数所不能实现的。
其中:填报属性、数据集属性中的参数值,这两个地方目前不能用宏,其它地方的表达式都可以使用
属性值不能用宏,宏只能用在表达式中
表达式中的引用方法为${宏名}
宏不能写在引号里面
5.5 单元格
任意选中一个单元格,在设计器的右边就会出现该单元格的属性列表,大家可以看到,每个属性都有属性值和表达式两种,如下图所示:这两种有什么区别呢?
首先,属性值和表达式是互斥的,定义了属性值,就不必定义表达式,定义了表达式,就不必定义属性值。
其次,属性值是在编辑报表时就写死了的,在报表运行时不必经过运算,也不会被改变。例如:你在单元格的背景色的属性值中定义了红色,那么报表运行时,它就是红色,不会被运算,不会被改变。
而属性的表达式在报表运行时,会被运算,该属性的最终属性值取决于表达式的运算结果值。例如:你在单元格的背景色的属性的表达式中编辑条件表达式,则满足不同的条件显示不同的颜色。在属性表达式中可以用“value()”来指代当前单元格的数据值。
5.6 主格
根格(报表首格)
报表左上角的灰色单元格称为报表首格,也称为根格。它用于存储描述整个报表的属性。如下图所示:
根格(报表首格)的书写规则为:`0
这里要强调的是 `0而不是‘0
主格和附属格
单元格进行扩展的过程中,缺省情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其它格(其右/下的格)的主格,而其右(下)的单元格是被动跟随复制的,被称为扩展格的附属格或子格。主格和附属格是相对的概念,即某格是另一格的主格或附属格,不存在单独的主格和附属格。
从主格的定义中看,显然只有扩展格才能是其它格的主格!
要注意的是,在缺省情况下,扩展格左(上)的格并不是其附属格,只有右(下)的格才是其附属格。
特别地,某个单元格的主格属性可以人为被改变。
6 常用函数
系统提供各种类型的函数,下面就常用的函数进行介绍;其他函数可以通过系统提供的帮助来学习。
6.1 数据集函数
6.1.1 select()
从数据集的当前行集中选取符合条件的记录,
例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字段降序排列
6.1.2 select1()
从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
例1:ds1.select1(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.select1(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值
6.1.3 count()
计算数据集当前记录行集中,满足条件的记录数
6.2 单元格函数
6.2.1 if()
例1:if(value()>100,-65536,value()80,-16776961,-14336 )
表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且大于
80时,返回-16776961颜色值,否则返回-14336颜色值
6.2.2 row()
取得当前单元格所在行的行号
value()
取得当前单元格的值 6.2.3
6.3 字符串函数
6.3.1 pos()
查找母串中子串的位置
例1:pos("abcdef","def") 返回:3
例2:pos("abcdefdef","def",5) 返回:6
6.3.2 mid()
返回字符串的子串
例1:mid("abcde",0) 返回:abcde
例2:mid("abcde",1,2) 返回:b
例3:mid("abcde",3) 返回:de
6.4 数据类型转换函数
6.4.1 dateTime()
将字符串或长整数转换成日期时间
例1:dateTime("2006-01-01 10:20:30") 返回:2006-01-01 10:20:30
例2:dateTime("2006-01-01 10:20:30:111") 返回:2006-01-01 10:20:30
例3:dateTime(12345) 返回:1970-01-01 08:00:12
6.4.2 str()
将对象转换成字符型,转换过程中可以进行格式化
例1:str(123) 返回值:"123"
例2:str(arg1,"yyyy年MM月dd日"),其中arg1为日期型参数,值为1972-09-09, 返回值:"1972年09月09日"
例3:str(3456.9876,"¥#,##0.00") 返回值:"¥3,456.99"
报表使用手册
XX股份有限公司
中国 济南
目录
1
2 概述 .............................................................................................................................. - 3 - 安装 .............................................................................................................................. - 3 -
2.1 准备好安装程序 .......................................................................................... - 3 -
2.2 安装中的选项 .............................................................................................. - 3 -
2.3 授权文件配置 .............................................................................................. - 4 - 报表制作 ...................................................................................................................... - 5 -
3.1 报表制作要求 .............................................................................................. - 5 -
3.2 制作一张报表的步骤 .................................................................................. - 5 -
3.3 启动报表设计器 .......................................................................................... - 6 -
3.4 连接数据源 .................................................................................................. - 7 -
3.4.1 数据源对话框 ......................................................................................... - 7 -
3.4.2 编辑数据源 ............................................................................................. - 7 -
3.4.3 注意事项 ................................................................................................. - 9 -
3.5 设计报表格式 .............................................................................................. - 9 -
3.5.1 格式设计 ................................................................................................. - 9 -
3.5.2 需注意事项 ........................................................................................... - 10 -
3.6 定义参数 .................................................................................................... - 10 -
3.6.1 参数的编辑 ........................................................................................... - 10 -
3.6.2 常用参数举例 ....................................................................................... - 11 -
3.7 定义宏 ........................................................................................................ - 11 -
3.7.1 宏的编辑 ............................................................................................... - 11 -
3.7.2 常用宏举例 ........................................................................................... - 12 -
3.8 建立数据集 ................................................................................................ - 12 -
3.8.1 数据集的编辑 ....................................................................................... - 12 -
3.8.2 常用数据集举例 ................................................................................... - 13 -
3.9 设置单元格属性 ........................................................................................ - 14 -
3.9.1 数据集在单元格中应用 ....................................................................... - 14 -
3.9.2 显示格式 ............................................................................................... - 14 -
3.9.3 设置预警条件 ....................................................................................... - 15 -
3.9.4 增加动态背景色 ................................................................................... - 15 -
3.9.5 按参数隐藏列 ....................................................................................... - 16 -
3.9.6 主格应用 ............................................................................................... - 16 -
3.10 报表预览 .................................................................................................... - 16 -
3.11 报表发布 .................................................................................................... - 17 - 报表部署 .................................................................................................................... - 18 -
4.1 部署位置 .................................................................................................... - 18 -
4.2 Web中显示................................................................................................ - 18 - 重要概念 .................................................................................................................... - 19 -
5.1 数据源 ........................................................................................................ - 19 -
5.2 数据集 ........................................................................................................ - 19 -
5.3 参数 ............................................................................................................ - 19 -
5.4 宏定义 ........................................................................................................ - 20 - 3 4 5
6 5.5 单元格 ........................................................................................................ - 21 - 5.6 主格 ............................................................................................................ - 21 - 常用函数 .................................................................................................................... - 23 -
6.1 数据集函数 ................................................................................................ - 23 -
6.1.1 select() .................................................................................................... - 23 -
6.1.2 select1() .................................................................................................. - 23 -
6.1.3 count() .................................................................................................... - 24 -
6.2 单元格函数 ................................................................................................ - 24 -
6.2.1 if() ........................................................................................................... - 24 -
6.2.2 row() ....................................................................................................... - 24 -
6.2.3 value() .................................................................................................... - 24 -
6.3 字符串函数 ................................................................................................ - 24 -
6.3.1 pos() ....................................................................................................... - 24 -
6.3.2 mid() ....................................................................................................... - 24 -
6.4 数据类型转换函数 .................................................................................... - 24 -
6.4.1 dateTime() .............................................................................................. - 24 -
6.4.2 str() ......................................................................................................... - 24 -
1 概述
该文档主要满足iES-E200电量采集系统中自定义报表制作编写。
2 安装
2.1 准备好安装程序
2.2 安装中的选项
点击安装程序,安装过程中会出现一下选择界面,请注意选择;
2.3 授权文件配置
启动报表设计器(启动方式参加3.2),点击“系统/数据源”菜单,弹出窗口如下图所示:
3 报表制作
使用自定义报表的一个显著特点需要显示的对象具有某一项相同的属性,若没有相同属性可以人工设置相同属性;
方法一:对对象进行编码设置(可以利用母线、变压器编码信息进行人工设置相同属性); 方法二:可以将对象添加到其他电量公式中;
3.1 报表制作要求
支持非自然日查询; 支持非自然月查询; 支持表码异常提示; 日、多日、月报表通用; 表码小数位数显示为4位;
3.2 制作一张报表的步骤
3.3 启动报表设计器
启动报表设计器的方式有三种方法:
方法一:在安装目录(比如默认的安装目录:C:\Program Files\reportHome\bin)寻找startup.bat的程序文件,双击运行即可;
方法二:从程序组中选择:开始 -> 程序 -> 润乾报表 -> 润乾报表设计器
方法三:安装完润乾报表之后,在桌面上会出现润乾报表设计器的快捷方式,双击即可。
润乾报表设计器的主界面,如下图所示:
3.4 连接数据源
3.4.1 数据源对话框
点击“配置/数据源”菜单,进入以下对话框:
3.4.2 编辑数据源
如果有已编辑好的数据源,点击“连接”按钮。
如果没有已编辑好的数据源,点击“新建”按钮,增加一个数据源,数据源的编辑界面如下:
选择“关系型数据库”,点击“确定”按钮,进入下面的页面:
在这里,我们将数据源名称命名为jdbc/RCCEEI,数据库类型选择ORACLE,客户端字符集选择GBK,数据字符集选择GBK,驱动程序选择oracle.jdbc.driver.OracleDriver,数据源URL为jdbc:oracle:thin:@数据库IP:1521:db,用户为XXX,密码为?????,点击“确定”按钮,建立此数据源.
至此,数据源建立完毕,点击“配置—数据源”,选中要连接的数据源,点击“连接”按钮,连接词数据源。
3.4.3 注意事项
需要和tomcat连接池配置一致:
3.5 设计报表格式
3.5.1 格式设计
方法一:新建报表
新建报表并根据客户需求设计报表格式包含标题、报表头、数据区,如下图:
方法二:导入Excel文件
点击“文件/打开”菜单,弹出窗口如下图所示:
选择客户提供的报表,点击打开。 方法三:根据现有报表修改
打开现有的报表文件,修改该文件使其符合客户要求; 3.5.2
需注意事项
边框设置
对齐设置(字符左对齐,数字右对齐,标题、序号居中) 隐藏不显示的单元格(行属性和单元格属性向冲突时行属性优先) 删除没有用到的单元格
3.6 定义参数
3.6.1
参数的编辑
点击“配置/参数”菜单,弹出窗口如下图所示:
可以对参数进行添加、修改、删除等操作;参数的值是从网页传递过来,此处参数名称应和网页一致; 3.6.2
常用参数举例
st:starttime简拼表示报表显示数据的开始时间,目前用秒数表示; et:endtime简拼表示报表显示数据的结束时间,目前用秒数表示; substaid:substationid简拼表示变电站ID;
strhour:非自然日的开始时间的分钟数,8:00表示为:480; strdatetype:报表的时间类型,1为日报表,2为月报表,3为多日;
lst:laststarttime简拼表示报表显示数据的开始时间的去年同期时间,目前用秒数表示; let:lastendtime简拼表示报表显示数据的结束时间的去年同期时间,目前用秒数表示; yearsecs:表示报表显示数据的开始时间的年初时间,目前用秒数表示;
lyearsecs:表示报表显示数据的开始时间的上一年的年初时间,目前用秒数表示;
3.7 定义宏
3.7.1
宏的编辑
点击“配置/宏”菜单,弹出窗口如下图所示:
可以对宏进行添加、修改、删除等操作;宏的赋值可以使用具体的数字、参数或者表达式; 3.7.2
常用宏举例
1、对参数进行处理的宏
startyear= mid(str(dateTime(st*1000)),0,4);表示开始时间的年份。 endyear= mid(str(dateTime(et*1000)),0,4) ;表示开始时间的月份。 startmonth= mid(str(dateTime(st*1000)),5,7);表示结束时间的年份。 endmonth= mid(str(dateTime(et*1000)),5,7);表示结束时间的月份。 2、在数据集中进行替换的宏
3.8 建立数据集
3.8.1
数据集的编辑
点击“配置/数据集”菜单,弹出窗口如下图所示:
可以对数据集进行添加、删除、修改等操作;常见数据集包括描述信息和历史数据数据集;
描述信息数据集:计量点数据集、母线数据集、主变数据集、线路数据集、CT数据集等;
历史数据数据集:表码数据集、电量数据集等; 3.8.2
常用数据集举例
母线供电量开关数据集:
select a.id as id,a.name, a.parts_id as cparts_id, b.parts_type,b.parts_id as parts_id,c.name as switch_name,b.start_date,b.end_date ,c.voltage_level as voltage_level,b.parts_para as parts_para,b.cal_sign as cal_sign,d.voltage_level as gvoltage_level from calc_desc a,calc_para b,switch c ,generatrix d
where a.id=b.calc_id and a.parts_type=9 and a.parts_id =d.id and a.parts_para=0 and c.id=b.parts_id and d.substation_id=${substaid}
and ((b.start_date=${starttime})or(b.start_date=${endtime}))
CT数据集:
select mp_id,run_date,coef from ct where run_date
select b.parts_id as parts_id from calc_desc a,calc_para b,switch c ,generatrix d where a.id=b.calc_id and a.parts_type=9 母线公式中的计量点
and a.parts_id =d.id and c.id=b.parts_id and d.substation_id=${substaid}
and (//公式时效判断
(b.start_date=${starttime}) or (b.start_date=${endtime}) )
) order by run_date desc
电量数据集:
SELECT mp_id,power_type,sum(total_value) as total_value from (
select mp_id, mod(power_type,10)+10 as power_type,sum(total_value) as total_value from mp_day_e${year} WHERE datetime>=${starttime} and datetime
and mp_id in(
select b.parts_id as parts_id from calc_desc a,calc_para b,switch c ,generatrix d where a.id=b.calc_id and a.parts_type=9 and a.parts_id =d.id and c.id=b.parts_id and d.substation_id=${substaid}
)
group by mp_id,power_type )
group by mp_id,power_type
3.9 设置单元格属性
3.9.1
数据集在单元格中应用
描述数据集一般只是简单的在单元格中进行纵向或横向显示;
如:某一个单元格表达式= 供电量开关名称.select(switch_name,parts_id==D6) 表示从供电量开关名称数据集中获取parts_id==D6的计量点名称,并显示; 举例:
if(like(ct倍率.select1(coef,mp_id==D6),"*/*"),
int(mid(ct倍率.select1(coef,mp_id==D6),0,pos(ct倍率.select1(coef,mp_id==D6),"/"))) / int(mid(ct倍率.select1(coef,mp_id==D6),1+pos(ct倍率.select1(coef,mp_id==D6),"/")) ),
ct倍率.select1(coef,mp_id==D6)
) * 供电量开关名称.select1(voltage_level,parts_id==D6)/100 3.9.2
显示格式
单元格属性列表中第二项是显示格式,用来设置值在报表展现时的显示格式。
举例:如果该单元格的值是一个数值型的数据1.33333,我们希望显示的时候只显示小数点后两位小数,这个就是通过显示格式完成的,可以在显示格式属性值中编辑#0.00,预览可以发现,显示的数值就变成了1.33。
也可以双击显示格式属性值,在弹出的显示格式对话框中选择你需要的格式,确定即可,如下图所示:
.
3.9.3
设置预警条件
如异常表码进行进行标红预警。
选中对应的单元格,并设置前景色表达式为:if(L7==1,,-16777216,-65536); 3.9.4
增加动态背景色
使单双行显示不同的背景色。
选中第四行,设置第四行的背景色表达式为:if(row()%2==0,-3342337,-1)该表达式意思是当行数为偶数行时背景色显示为浅蓝色,当行数为奇数行时背景色显示为白色
3.9.5
按参数隐藏列
在报表参数中,传入某个数值后,将某一列或几列隐藏,例如当报表日期大于2009年1月1日,则隐藏几列,可以选择该列,在右边的属性中,找到“是否可见”,在表达式中填写if(@reportdate>"20090101",false,true),即可按照输入参数隐藏列。 3.9.6
主格应用
主要说明在同一张报表中有几个同一类型数据区(如在一张报表中分别显示该变电站能所有母线的计算分量的详细信息);可以根据实际情况分别对多条母线分别设置单元格属性,更方便的是采用人工干预主格的方式实现;
以下图为例说明:
1. 首先在A16单元格中设置需要显示的母线的ID; 2. 在17行到27行完成一条母线的各类数据的赋值; 3. 从17行到27行设置左主格为
A16;
3.10 报表预览
报表预览主要用于验证报表是否正确,点击工具栏中的预览图标,
弹出参数赋值对话框,根据实际情况对各个参数赋值后,点击“确定”按钮;如果预览界面正常,说明我们报表建立成功
3.11 报表发布
参见报表部署。
4 报表部署
4.1 部署位置
目前在下放置一些常见的报表模板部署时可以根据实际情况进行删减; 目录结构
---dayreport //放置日报表模板
---company //放置不需要选择厂站的日报表模板 ---substation//放置需要选择厂站的日报表模板 ---monthreport //放置月报表模板
---company //放置需要选择厂站的月报表模板
---substation//放置需要选择厂站的月报表模板
4.2 Web中显示
在web菜单“数据浏览”项中的“应用日报表”对应自定义日报表的显示、“应用月报表”对应自定义月报表的显示;
5
重要概念
5.1 数据源
顾名思义,数据的来源。在数据源中存储了所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
数据源标准属性包括:
1、databaseName String 数据库名称,即数据库的SID。 2、dataSourceName String 数据源接口实现类的名称。 3、description String 对数据源的描述。
4、networkProtocol String 和服务器通讯使用的网络协议名。 5、password String 用户登录密码。 6、portNumber 数据库服务器使用的端口。 7、serverName String 数据库服务器名称。 8、user String 用户登录名。
如果数据是水,数据库就是水库,数据源就是连接水库的管道,终端用户看到的数据集是管道里流出来的水。
5.2 数据集
数据集是包含数据表的对象,可以在这些数据表中临时存储数据以便在应用程序中使用。如果应用程序要求使用数据,则可以将该数据加载到数据集中,数据集在本地内存中为应用程序提供了待用数据的缓存。即使应用程序从数据库断开连接,也可以使用数据集中的数据。数据集维护有关其数据的更改的信息,因此可以跟踪数据更新,并在应用程序重新连接时将更新发送回数据库。
5.3 参数
在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。这就需要通过参数的形式控制报表中的数据。
下面,根据前面的报表,我们加入参数使它变成一张更灵活的报表。
第一步:单击主菜单中的【配置】->【参数】。
弹出“参数编辑”窗体,如下图所示:
第二步:点击【增加】按钮,新增一个参数,默认名称为“arg1”,名称可根据自己的需要来命名。这里我们把【名称】和【描述】分别改成“name”和“员工姓名”,【数据类型】我们选择默认的“字符串”。如下图所示:
同样的方法增加一个“奖金”参数,【数据类型】设置为“数值型”。
同样的方法增加一个“出生日期”参数,【数据类型】设置为“日期型”。
同样的方法增加一个“性别”参数,【数据类型】设置为“字符串”。
注:
参数名称尽量用英文,中文容易在部署的时候出现乱码,徒增烦恼。
在sql语句中不能使用参数
5.4 宏定义
宏是一个没有数据类型的字符串标识,在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的宏名替换成宏值。
利用宏可以在报表中动态的进行表达式的替换,根据用户传入的不同宏值,在报表中可以计算出不同的表达式结果,从而得到不同的报表信息,这样用户就不用根据不同的情况编制许多不同的报表了,大大减轻了用户的工作量。此外我们还可以利用宏来实现按一个数据集的任意字段查询,这是利用参数所不能实现的。
其中:填报属性、数据集属性中的参数值,这两个地方目前不能用宏,其它地方的表达式都可以使用
属性值不能用宏,宏只能用在表达式中
表达式中的引用方法为${宏名}
宏不能写在引号里面
5.5 单元格
任意选中一个单元格,在设计器的右边就会出现该单元格的属性列表,大家可以看到,每个属性都有属性值和表达式两种,如下图所示:这两种有什么区别呢?
首先,属性值和表达式是互斥的,定义了属性值,就不必定义表达式,定义了表达式,就不必定义属性值。
其次,属性值是在编辑报表时就写死了的,在报表运行时不必经过运算,也不会被改变。例如:你在单元格的背景色的属性值中定义了红色,那么报表运行时,它就是红色,不会被运算,不会被改变。
而属性的表达式在报表运行时,会被运算,该属性的最终属性值取决于表达式的运算结果值。例如:你在单元格的背景色的属性的表达式中编辑条件表达式,则满足不同的条件显示不同的颜色。在属性表达式中可以用“value()”来指代当前单元格的数据值。
5.6 主格
根格(报表首格)
报表左上角的灰色单元格称为报表首格,也称为根格。它用于存储描述整个报表的属性。如下图所示:
根格(报表首格)的书写规则为:`0
这里要强调的是 `0而不是‘0
主格和附属格
单元格进行扩展的过程中,缺省情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其它格(其右/下的格)的主格,而其右(下)的单元格是被动跟随复制的,被称为扩展格的附属格或子格。主格和附属格是相对的概念,即某格是另一格的主格或附属格,不存在单独的主格和附属格。
从主格的定义中看,显然只有扩展格才能是其它格的主格!
要注意的是,在缺省情况下,扩展格左(上)的格并不是其附属格,只有右(下)的格才是其附属格。
特别地,某个单元格的主格属性可以人为被改变。
6 常用函数
系统提供各种类型的函数,下面就常用的函数进行介绍;其他函数可以通过系统提供的帮助来学习。
6.1 数据集函数
6.1.1 select()
从数据集的当前行集中选取符合条件的记录,
例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字段降序排列
6.1.2 select1()
从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
例1:ds1.select1(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.select1(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值
6.1.3 count()
计算数据集当前记录行集中,满足条件的记录数
6.2 单元格函数
6.2.1 if()
例1:if(value()>100,-65536,value()80,-16776961,-14336 )
表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且大于
80时,返回-16776961颜色值,否则返回-14336颜色值
6.2.2 row()
取得当前单元格所在行的行号
value()
取得当前单元格的值 6.2.3
6.3 字符串函数
6.3.1 pos()
查找母串中子串的位置
例1:pos("abcdef","def") 返回:3
例2:pos("abcdefdef","def",5) 返回:6
6.3.2 mid()
返回字符串的子串
例1:mid("abcde",0) 返回:abcde
例2:mid("abcde",1,2) 返回:b
例3:mid("abcde",3) 返回:de
6.4 数据类型转换函数
6.4.1 dateTime()
将字符串或长整数转换成日期时间
例1:dateTime("2006-01-01 10:20:30") 返回:2006-01-01 10:20:30
例2:dateTime("2006-01-01 10:20:30:111") 返回:2006-01-01 10:20:30
例3:dateTime(12345) 返回:1970-01-01 08:00:12
6.4.2 str()
将对象转换成字符型,转换过程中可以进行格式化
例1:str(123) 返回值:"123"
例2:str(arg1,"yyyy年MM月dd日"),其中arg1为日期型参数,值为1972-09-09, 返回值:"1972年09月09日"
例3:str(3456.9876,"¥#,##0.00") 返回值:"¥3,456.99"