finereport基础(五)

编程入门 行业动态 更新时间:2024-10-19 16:36:15

finereport<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础(五)"/>

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条件来实现连接

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

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

更多推荐

finereport基础(五)

本文发布于:2024-02-25 16:39:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699634.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   finereport

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!