壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 398|回复: 0

Report Studio动态参数设计--存储过程调用

[复制链接]
发表于 2012/3/7 15:24:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
存储过程调用描述

       Cognos8.3 Report Studio设计动态报表,在前一节提到宏变量;本节是调用存储过程传递参数实现数据集返回,实时获取最新结果。对于特殊化的报表数据,不能用简单的SQL脚本设计,考虑存储过程中使用游标输出。通过Framework Manager导入存储过程,再对机构约束限制,但数据权限控制有点麻烦。我可以在Report Studio设计一个汇总信息查询与用户信息表查询进行连接,到达数据访问控制。



报表设计时,重点是对业务逻辑熟悉程度,要点是业务需求梳理及数据组织技能高低。针对复杂报表实现方式很多,具体问题具体分析,寻找快捷有效的方案。



过程设计与调用

基于Oracle数据库,设计存储过程,返回一个结果集。



存储过程代码如下:

CREATE OR REPLACE PROCEDURE pro_stat_op_plc_anly(v_mon_id    in integer,
                                                 v_org_lvl   in integer,
                                                 v_stat_list out SYS_REFCURSOR) IS
  v_begin_date integer := v_mon_id * 100 + 1;
  v_end_date   integer := v_mon_id * 100 + 31;
Begin
  open v_stat_list for
    select b.org_lvl_nm,
           b.org_lvl_sys,
           b.parent_org_name,
           b.parent_org_sys,
           b.org_lvl_id,
           b.lvl_name,
           sum(a.acqu_ins_qty) as acqu_ins_qty,
           sum(a.acqu_ins_prm) as acqu_ins_prm,
           sum(a.acqu_ins_amnt) as acqu_ins_amnt,
           sum(a.form_agg_tms) as form_agg_tms,
           sum(a.stdpol_form_agg_tms) as stdpol_form_agg_tms,
           sum(a.stdpol_qty) as stdpol_qty,
           sum(a.nudepol_qty) as nudepol_qty
      from bidm.ta_op_plc a, gldmdb.v_d_org_lvl_4 b
     where a.internal_org_id = b.selling_org_id
       and b.sign_id = 2
       and b.org_lvl_id = v_org_lvl
       and a.cal_day_id between v_begin_date and v_end_date
     group by b.org_lvl_nm,
              b.org_lvl_sys,
              b.org_lvl_id,
              b.lvl_name,
              b.parent_org_name,
              b.parent_org_sys
     order by b.org_lvl_sys, b.org_lvl_id;
End;



在FM导入一个数据源,选择“Stored Procedure”


       指定一个过程名,点击“Finish”。


       对新建的查询定义窗口,编辑输入参数“v_mon_id”、“v_org_lvl”。


       修改数据类型为“nVarChar”,如果按照过程输入参数类型来设置,会出现报错。


       增加两个变量,实现后端定义参数,前端调用。点“Test”测试结果


       输入两个参数,确认。结果如下:


       导入的存储过程,类似于一个查询主题,自动装载输出结果字段名称。


Report Studio设计演示

       发布到Web Server,用Report Studio设计一个带权限控制存储过程结果集,首先定义好权限控制用户信息查询,控制查询可以根据工号登录约束数据范围,关联字段是工号所属机构编码。再创建一个统计分析查询,记录事实数据信息。两个查询关联汇总到“汇总查询_FULL”查询。修改查询“处理”属性为“仅限本地”。


       注意:关联时,“机构查询”与“统计分析”是1:1,或者是1:0


       通过自定义一个工号8888,限制只能查询4个分公司数据。如下:


       利用存储过程实时动态查询结果,解决不能处理复杂的算法,如10%的计算指标;考虑ETL每天刷新数据的压力,缩短数据处理时间,但影响系统开销,用户查看报表占用数据库资源,多用户同时执行同一报表选择不同条件,对系统开销增大,设计时要考虑数据量与硬件性能。

该贴已经同步到 xiaoerp的微博
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 00:02 , Processed in 0.015121 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表