finereport

finereport第一个报表

finereport第一个报表

报表设定步骤

报表设定步骤

设计过程中遇到的问题总结

  1. 数据集设定问题
    1.1 尽可能在SQL语句中,过滤掉不必要的数据,提升数据读取效率
    1.2 可以在数据集SQL里,设定参数,以验证数据结果
    1.3 对于finereport自有的参数,必须是 引 用 , 字 符 型 的 , 必 须 ′ {}引用,字符型的,必须 ' {}’
    1.4 对于finereport自有的函数,要做参数使用,必须先在参数模板设定参数,公式引用该函数,再在SQL语句中类似其自有参数格式引用即可

  2. 不同数据集字段联动问题
    2.1 系统默认,关联相邻左字段实现数据联动。
    2.2 对来自于不同数据集的数据联动,必须通过过滤条件,指定到对应的单元格【只要需要根据报表数据进行关联的,都必须在单元格内体现,若是不需要体现在报表里,只要设定为隐藏列即可】
    2.3 当数据量大时,使用过滤条件过滤数据可能无法实现,需要使用动态参数注入方式(动态参数注入是在SQL时根据条件实现过滤;过滤条件是数据读取后,在报表实现过滤。读取数据量不同)【当时因为只是用了过滤条件,系统产生数据量大的报错】

  3. 参数过滤问题
    3.1 需要作为查询条件存在的,都必须到参数模板进行参数设定
    3.3 待将全部设定的参数,在报表参数去全部引入后,必须逐一指定每个参数的控件属性,若要指定默认值,需在控件值进行指定【当时做错,以为此处是指定和数据库关联字段】;此处的控件属性,只指定了在查询条件这里要什么
    参数控件属性

    3.4 参数后,统一将参数条件,设定在第一个过滤字段即可【当时将每个过滤字段都去设定,后经顾问指点,全部放到销售订单处指定过滤条件(过滤条件也就是报表执行时合并的sql where条件)】
    参数过滤条件设定

  4. 数据分级权限问题
    4.1 要实现的数据权限分级逻辑为:原始数据创建人(机构工程师),只能查询自己创建的数据;对应产品线的PM,可以看该产品线下的所有数据;该部门一级主管及PMC可以看所有数据
    4.2 在部门下面,建各产品线为子部门,职务指定PM、PJM、工程师等
    4.3 工程师与原始数据申请人实现关联过滤;PM则需要两个关联:子部门与产品线关联,职务指定
    4.4 在finereport,如上建立了多层级部门,数据在帆软的格式为:一级部门,二级部门;而在SQL查询时“,”是不认的。过在通过函数获取时,同时将",“替换为” ‘,’ "
    4.5 用了if语句(类似excel的if,即if(条件,true(结果1),false(结果2) ))
    i f ( p o s t = = " 研 发 P M C " ∣ ∣ p o s t = = " 研 发 一 级 主 管 " ∣ ∣ d e p t = = " 资 讯 中 心 " , " " , " a n d ( p e r s o n . f d l o g i n n a m e = ′ " + f i n e u s e r n a m e + " ′ " + " o r p t l i n e . p t l i n e 1 d e s c i n ( ′ " + d e p t + " ′ ) a n d ′ P M ′ i n ( ′ " + p o s t + " ′ ) ) " ) 4.6 在 f i n e r e p o r t 中 , 在 S Q L 写 入 {if(post=="研发PMC"||post=="研发一级主管"||dept=="资讯中心","","and(person.fd_login_name = '"+fine_username+"'"+" or ptline.pt_line1_desc in ('"+dept+"') and 'PM' in ('"+post+"'))")} 4.6 在finereport中 ,在SQL写入 if(post=="PMC"post==""dept=="","","and(person.fdloginname="+fineusername+""+"orptline.ptline1descin("+dept+")andPMin("+post+"))")4.6finereportSQL{},是finereport独有的,${}是执行finereport条件然后将结果在SQL where实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值