变长表从数据库中取数

1573
0

xxxl 数据领袖Lv6

发表于2020-7-31 17:30

楼主
本帖最后由 xxxl 于 2020-7-31 17:31 编辑

1需求描述                    

     我们在设计i填报报表的时候会遇到需要在已有的数据库基础上直接通过取数管理功能来完成采集补录,或者是进行校验审核,来避免不必要重复填写,和人工审核数据库以至于浪费人力和时间。
      再这样的情况下我们就需要用到i里面的取数功能了,i中对取数有两种方式1、JDBC取数;2、i从bi取数。
      他们的位置在这里


2.取数设置
2.1添加取数分组

    2.2添加JDBC取数

       2.2.1 对JDBC取数的设置
          这里的名称我们需要记住,在报表中使用QS函数取JDBC需要用到。
          数据源为数据库连接池里可以设置,
          sql语句为用于指定取数的SQL语句。

        我们这里先用这个sql语句在数据库中查一下数据。

     2.2.3利用sql语句进行传参

       SQL语句可以包含如下自定义标签

        1)<id> 字符串 报表户代码

        2)<lid> 字符串 登录用户代码

        3)<bbq> 字符串 登录用户填报任务的报表期

        4) <rs> 游标,存储过程的返回类型 存储过程用到此保留字,用来返回结果集合,例如{call proc1(<bbq>,<id>,<rs>)}或者{call <rs>=proc2(<bbq>,<id>)}

        5)<option> 字符串 用于扩展,由QS函数传递

     参考示例

        查询举例:select * from ZDSYKYBB_XXB where BBQ_=<bbq> and userid_=<id>

        存储过程举例:{call proc1(<bbq>,<id>,<rs>)}或者{call proc1(<bbq>,<id>,<rs>)}或者{call <rs>=proc2(<bbq>,<id>)}

    2.2.4测试取数

       我们在保存JDBC取数后可以进行测试




2.3  i从bi取数

    2.3.1 bi取数设置
      这里的名称同样需要在后面的QS函数中使用到
      数据源需要在数据库连接池中设置有关bi的数据库连接池
      BI报表为数据源中对应的报表

    取数区域这里
         取整张报表:即取整张表格,包括标题行

       取矩形区域:用ABC序列+阿拉伯序号表示,参考示例如下


      取指定行列:行用阿拉伯序号表示,列用ABC序列表示,参考示例如下

     参数列表:定义所取BI报表的报表参数的取值

     <id> 字符串 报表户代码

     <lid> 字符串 登录用户代码

     <bbq> 字符串 登录用户填报任务的报表期

     参考示例如下



3 取数应用
    3.1 QS函数
我们在取数管理成功取到数后即可以应用到报表中了,这里我们可以使用QS函数取到取数管理中的数据。
     3.1.1QS函数说明  
     QS("取数名称","报表期","报表户","指标名","扩展参数选项")

     QS函数返回一个字符串型,它只接收五个字符串型的参数:

     取数名称:第一个参数表示要取哪个取数设置的数据,此参数必须指定。

     报表期:第二个参数是取哪个期的数据,此函数可以为空表示取当前期,为@1表示前一期,为200212-表示取2002年12月的数据。

     报表户:第三个参数是取那户的数据,为空表示取当前户的数据,为001表示是取报表户代码为001的单位的数据。

     指标名:第四个参数是表示取哪个指标。

     扩展参数选项:第五个参数是自定义选项以备扩充,对于通过SQL定义的取数设置,你可以在你的SQL中用<option>标签来接收此参数值,运行时,SQL语句中的<option>字串会自动替换为QS函数传过来的值。你也可能通过此参数传递一个特殊格式的值,相应的,在服务器端,需要针对这个特殊格式开发相应的接口对此参数进行解析。

     此函数主要用在插件上在线填报时从数据源中取数。


      3.2 QS函数示例

      QS("Q","","","ID","")   这里表示取数取名称为Q的取数管理的ID字段
     QS("Q","","","000@NAME","")  这里返回值为理工科
   数据库里的数据是这样的







最近看过此主题的会员

edc231

九九九

零零张

haoda

邻居门口晒花椒

lizf

fenglan

13419516376

lifen

@thj

cityluck

王紫捷

dafengge

xuym1130

0个回答

只看楼主

登录后可回答问题,请登录注册

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号