润乾报表入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 前言

鉴于目前报表开发没有一个统一的规范,每个开发的风格和习惯也不一致,所以动手写了这份报表开发文档,一来有助于统一大家的报表的风格,提供一些常见问题的解决方案,二来方便以后新人的学习使用。本人也是略懂皮毛,有什么错误和不足之处,欢迎大家补充修改。

2.报表工具安装

解压后运行runqian-v4.5.5-install.exe安装文件,按引导完成安装。其中,在初次打开报表文件和发布报表文件的时候(后续会提到),会提示我们需要lic文件,就是下图中的两个lic文件。

Figure 1

3.报表工具的使用

3-1 配置数据源

使用报表时需要先对数据源进行配置:

Figure 2选择新建一个数据源:

Figure 3

项目中默认使用的数据源名称为reportjndi.参考图3进行配置后,点击连接,进行数据源连接,这样就完成了报表服务器与数据库的连接。

3-2 新建报表

目前的报表形式分为两部分,一是用来显示查询结果的“报表名.raq”文件,另一个是用来提供查询条件的“报表名_arg.raq”文件。我们只需要在保存文件的时候,按上述格式命名,打开.raq文件时,会自动打开相关的_arg.raq文件。

3-3 结果显示报表设计

首先新建一张报表,直接点击左上角工具栏上的即可。按照给定的表样设计好报表名名、列名。如下图,这里提供一种样式当做参考模板,如客户无特殊需求,希望各开发按照统一的样式标准进行设计,有助于提高所有报表的统一性,后面还会提到一些规范,希望大家也可以遵守起来。

Figure 4

报表名这一行,采用黑色、二号字,加粗。列名采用白色、三号字,加粗,背景色使用淡紫色(颜色相近即可)。若每一列下面还要分列,则使用黑色、小三号字,结果数据使用黑色、四号字。

Figure 5

设定好报表样式后,开始根据逻辑进行取数,设置每一列的宽度时,如果需要在一行中完整显示的,要选择“按单元格内容扩大”,并去掉“自动换行”。

Figure 6

报表通过配置的“数据集”进行取数。点击配置—数据集,新增一个数据集,大部分逻辑,通过sql检索即可完成,若遇到比较复杂的也可以使用存储过程。

Figure 7

在“语法”中输入sql语句,获得我们想要的查询结果:

然后在报表中通过数据源名.select(列名),即可获得我们要的数据,select方法还提供了排序等功能,详细用法可以参考安装D:\develop\安装包\安装包,帮助文档,lic\runqian_helpdoc\使用手册\报表设计\润乾报表4.5用户手册.chm,通过搜索关键字,可以了解相关的功能,开发的时候可以多使用这个手册。

3-4 查询条件报表设计

很多时候需要根据一些条件来对数据进行筛选,点击左上角新建报表,选择填报报表,生成一张空白报表,设计好需要的查询条件,例如:

Figure 8

在设计的时候需要统一一下样式:

从上往下,每行四个查询条件,黑色小三号字体。

右击查询条件后面的空白格,选择填报属性们可以选择编辑风格,如所属机构、银行大类这些条件,我们一般使用下拉数据集,通过数据集进行取数,可以分别设置显示列和数据列。

Figure 9

比较常用的编辑风格包括下拉日历,下拉列表框以及普通的文本编辑框。

通过配置查询条件所在格的WEB变量名,可以在结果报表中通过相同的参数名获得该单元格的数据。

Figure 10

在结果报表中,点击配置—参数,配置对应的参数名

Figure 11

在这里配置好以后,我们在数据集中也需要配置参数,然后在sql语句中,使用“?”与该参数进行绑定。需要注意的是,sql语句中的?与参数中的参数是按照顺序一一对应绑定的,有几个“?”就有几个参数,而且对应顺序要一致。如下图,参数列表中第9,第10个参数为bankid,在sql语句中,对应的刚好也是第9,第10个“?”

Figure 12

Figure 13

3-5 发布报表

完成报表的设计之后,点击右上方的“发布报表”,可以将报表发布到指定路径中。再点击Internet图标,就可以在网页中查看报了。

Figure 14

4.常见问题及解决方案

4-1 分组,排序

经常要对查询结果进行排序和分组,报表工具自带group语法,可以在sql里先用order by排好序,然后在报表工具里使用group进行分组。常用的select排序和group排序是:ds1.select(AAA,false,,BBB),从数据集ds1中获取AAA字段,并根据BBB字段进行排序ds1.group(AAA,true),把数据集ds1中所有记录按照AAA字段降序排列,然后根据AAA 进行分组

对组织进行排序,可以通过org_level和org_id两个条件来排序。

4-2 非必填查询条件

有时候查询条件很多,使用的时候往往不是所有的条件都要输入,这时可以在sql的判断中加上or ? is null。如图12所示,对非必填的条件,加上or ? is null,就可以在没有传该条件参数的时候也能查出数据。(如果条件为多选,设置的数据类型为“字符串组”,这种情况下如果写or ? is null 是会报错的,这里提供一种处理方法:在绑定参数的时候需要特殊处理,如下图,typecode为多选条件的变量名,第一个变量为正常的字符串组变量,第二个变量特殊处理,如果为null时,赋值‘1’,如果不是,赋值‘2’,这样在sql中判断的时候,只要将or ? is null 改为or? = ’1’即可完成对空值的判断。这样配置后,对应的sql应该写成and (code in (?) or ? = ‘1’))

4-3 组织隔离

需要对查询条件中的“组织机构”下拉框进行数据隔离时,可以这样配置数据集:SELECT org_code||'-'||org_namenamecode,org_id from tsys_organization t where org_id in(SELECT org_id FROM tsys_organization start with org_id = nvl(? , '6000001')

CONNECT BY NOCYCLE PRIOR org_id = PARENT_ID)

ORDER BY org_code

“?”表示传进来的expectedorgID,这样就只能选到登录用户所在组织的本级以及下级组织。

相关文档
最新文档