java 报表 存储过程_快逸报表数据集类型采用存储过程介绍

快逸报表服务器提供了多种数据集类型供用户使用,有SQL检索、存储过程、复杂SQL 、Text文件、XML文件、内建数据、语义层视图等数据集类型。

本文以oracle数据库为例介绍一下数据集类型为存储过程的报表制作方法。

第一步:准备oracle存储过程

–员工表

create table t_employee(

id number(10) primary key,

name varchar2(20),

age number(3),

salary number(10),

deptid number(10)

);

–初始化员工表数据

insert into t_employee values(1001,’张三’,23,2400,001);

insert into t_employee values(1002,’李四’,24,2600,002);

insert into t_employee values(1003,’小王’,21,3000,002);

–部门表

create table t_dept(

id number(10) primary key,

name varchar2(20)

);

–初始化部门表数据

insert into t_dept values(001,’销售部’);

insert into t_dept values(002,’研发部’);

–存储过程 package

create or replace package mypackage AS TYPE mycursor IS REF CURSOR;

procedure EMP_TJ( in_deptid number,

in_age number,

allemps out mypackage.mycursor);

end mypackage;

–存储过程package body

create or replace package body mypackage is

procedure EMP_TJ(

in_deptid number,

in_age number,

allemps out mypackage.mycursor)

IS

BEGIN

open allemps for

SELECT id,name,age,salary,deptid FROM T_EMPLOYEE WHERE DEPTID=IN_DEPTID AND AGE>IN_AGE;

END EMP_TJ;

end mypackage;

存储过程说明:

1, 在数据库新建两张物理表(员工表、部门表),员工表包含员工ID、姓名、年龄、薪资及部门ID五个字段,部门表包括部门ID及部门名称。

2, 按照oracle建存储过程规则,建立存储过程EMP_TJ,其功能为根据输入的部门ID及员工年龄,查询返回员工ID、年龄、薪资及部门ID。查询条件为部门ID等于输入的部门ID,年龄大于输入年龄。

第二步:将编写好的存储过程设置为数据集并设置相应参数

1,新建报表,设置两个参数(depID,age),如下图:

1-0019.png

2,设置报表数据集,如下图:

2-0017.png

选择编辑,下一步。

3-0013.png

下一步,参数设置。

4-0013.png

确定后,报表数据集设置完成,如下图:

5-0011.png

确定后,进入报表设计。

3, 使用设置好的存储过程数据集设计报表

接下来以下面这个报表模板为例,来演示存储过程数据集设计的报表,如图所示:

6-0008.png

单元格表达式为:

A3:=ds1.select(id,false)

B3:=ds1.name

C3:=ds1.age

D3:=ds1.salary

E3:=ds1.depID

报表的浏览效果如下图(输入条件为,age=22、 depID=002):

7-0005.png

到此,存储过程作为数据集的介绍已完成,从例子可以看出,使用存储过程作为数据集来做报表也是很简单的,同时使用存储过程来做报表,对于sql比较复杂的来说也能提高报表的运算性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值