知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 设计基础 > 快逸报表数据集类型采用存储过程介绍

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

快逸报表服务器提供了多种数据集类型供用户使用,有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.png

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

2.png

选择编辑,下一步。

3.png

下一步,参数设置。

4.png

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

5.png

确定后,进入报表设计

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

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

6.png

单元格表达式为:

A3:=ds1.select(id,false)

B3:=ds1.name

C3:=ds1.age

D3:=ds1.salary

E3:=ds1.depID

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

7.png

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

本文标签:
发布日期:2010/04/23
本文分类: 设计基础