finereport基础(五)

一.主子报表

预期一:

在之前自由报表的基础报表上添加一订单明细表

 思路:先做出自由报表,再做出跟随该笔订单账号的子报表订单明细表,要求将该笔订单的所有明细全部展示,并进行分页,每页只放一笔订单的数据

(1)整个订单明细表应该随着订单统计表的唯一标识订单编号走,也就是说它们依赖于该笔订单的信息。所以应该设置父子格;光有父子格还不够,想让两张表起关联,还需要join on条件,但是这里已经没用sql了

所以需要对明细表的产品id进行过滤 即 a.产品id=b.产品id

(2)父子格的设置:递进依赖,子表的产品id依赖主表的产品id,子表的单价依赖于子表的产品id,以此类推

(3)分页,前面说了,只想让一页展示一笔订单的信息,所以需要行后分页,但需要空一格(说实话,我不知道为什么要这样,这相当于是,这个工具内部的一些代码逻辑,在学习帆软的过程中,有很多不解,但我并没有像以前那样,去钻研,因为解决这些问题的逻辑涉及到了工具本身的设定,不容易解释),如果不空一格,就有可能将产品信息未完全展示,所以空一格很有必要,当然由于每页都要让这个分页生效

所以这个空行也需要添加父子格!!!

并且必须依赖于主表的产品id,不能是子表的产品id,我觉得按照表连接的逻辑,应该是都可以才对

但事实上,当以子表的产品id为空行的父格时,依然会导致数据不完全展示

(4)主表的其余单元格都依赖于产品id

模板:

结果:

------------------------------------------------我是分隔符-----------------------------------------------------

预期二:

思路:前面已经展示了一种让主表和子表连接的方法:即通过过滤来设置单元格中的两个字段相等,但那是静态的页面

(1)这个页面依然是主子报表,不同的时deptno这一字段可以动态浏览了,所以需要设置超链接:动态参数

在帆软中获取当前参数的公式是

 这样即可让dept表中的主键变成超链接再者通过对子表emp的sql进行过滤

select * from emp where deptno=${dno}

这样既可以满足emp所只展示的数据是被筛选过的,也满足了主子表的动态性

(2)值得注意的是,设置参数时一定要选择公式,一旦设置超链接或者设置sql时任何一步出错都会导致页面崩溃

帆软已经示例输入参数的方式式:${参数}

模板:

结果:

用第一种方式实现表连接:

模板:

结果:

3.预期三

(1)作为一个主子报表,首先是分的清主报表和子报表,这样才能正确的向数据集sql添加where条件

(2)订单id和产品名称通过实际显示值来更改即数据字典(单元格属性-形态-数据字典)

(3)两张表的联系通过where条件,在主表中建立超级链接、对子表的数据集的sql进行条件过滤,做到展示的子报表的订单id一一对应

(4)post和get的区别:属于网络知识

(5)分页:seq()或者row()

综上一共要注意: 确定主子报表-----添加超级链接-分页-连接两表-设置数据字典

结果:

 

 二.小结

主子表既可以通过滤两张表相同的字段来实现链接

也可以通过sql条件来实现连接

其次对超级链接有了进一步的认识:动态参数

以及帆软中获取当前单元格参数的公式:$$$

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值