专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 报表

小弟我的学习笔记——中级报表制作2——动态列

发布时间:2010-06-13 14:06:41 文章来源:www.iduyao.cn 采编人员:星星草
我的学习笔记——中级报表制作2——动态列
隔了好久又开始写学习笔记了,工作忙的差点荒废了做笔记,呵呵,自我检讨一下先吧。
这次的中级报表制作做什么呢,想了一下,还是做个不是很复杂的,举个用列名称控制显示列的例子好了。
我想要什么效果呢,就是数据库里存了好多的数据列,但是我不想都显示出来,只想要我想看的固定的那几个列,所以我就想要访问报表的时候,他把可以选看的列名称都显示给我,我可以自己选几个想看的列。
其实操作起来也不是很难的。老规矩,放个图先:


这个图里面,有六个列可以选,课程号,课程,年纪,姓名等等,但是我只想看课程号,名字和他们对应的性别,这里我就多选这三个列,得到的效果见下图喽~


废话不多说了,简单介绍下我的制作方法吧~
首先 把数据导入到Finereport里来。直接select * from StScore.
StScore这个表里有六个列: Class No, Name, Sex, Course, Grade, Student No.
然后新建一张空白的自由报表。 定义一个参数,名称为Para。类型选为复选框,如图:


然后我们来定义一个报表数据字典,选择定义|自定义,然后写入6个列名,分别为复选框中的可选项,确定。设置如下图:


在B2单元格中,写入一个公式:=split($para, ",")。意思就是啊在B1单元格中写入了一个函数split ( )。该函数在此处可以获取从参数当中传入的列名作为值,并将每一个值写一个单元格。 
然后我们鼠标选中B2单元格,将他设置为从左到右扩展。 
在A3单元格中写入如下公式:=ds1.select(#0),这个公式的意义就是取得ds1数据源当中的所有行号。就是呢ds1当中有多少行数据,那么这个公式返回该结果的行号,1,2,3…… 
把A3单元格设置为从上到下扩展。 
然后在B3单元格中写入如下公式:=ds1.column(b2),这个公式的意义就是要获取B2单元格所指定的列的列内容。其返回记录的排列顺序是按照A3当中所获取的行号进行排列的。 
预览就有我们要的效果喽~搞定!嘿嘿~
中级的报表相对以前写的初级确实是多了很多步骤呢,也不知道自己描述的清不清楚~还有问题的同学欢迎提问喽~恩恩~


------解决方案--------------------
呵呵,来帮你踩了~一如既往的支持finereport
------解决方案--------------------
好详细哦 楼主辛苦了
------解决方案--------------------
LZ,我有一直关注你的学习笔记哦~~能不能将你的笔记打包一份给我啊?不胜感谢哦
------解决方案--------------------
LZ,我有一直关注你的学习笔记哦~~能不能将你的笔记打包一份给我啊?不胜感谢哦
------解决方案--------------------
也给我来份吧 谢谢 zhenghao15@126.com
------解决方案--------------------
mark
------解决方案--------------------
ding
------解决方案--------------------
探讨
引用:
LZ,我有一直关注你的学习笔记哦~~能不能将你的笔记打包一份给我啊?不胜感谢哦


好的啊·~你把邮箱地址留给我~我发到你邮箱

------解决方案--------------------
你做得报表主要是使用什么工具实现的啊?
我们现在在用的是insight
------解决方案--------------------
LZ很强啊~~~顶!!!
------解决方案--------------------
很好很强大啊!
------解决方案--------------------
我的邮箱是china_demon@126.com.谢谢楼主
------解决方案--------------------
不懂,帮顶
------解决方案--------------------

------解决方案--------------------
说真的,我不做这个,我希望有没有高人发一下那个 report BUILDER的制作文档啊
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: