壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1414|回复: 8

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

[复制链接]
发表于 2008/12/29 17:45:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 lovereport 于 2009/3/26 10:57 编辑

隔了好久又开始写学习笔记了,工作忙的差点荒废了做笔记,呵呵,自我检讨一下先吧。

这次的中级报表制作做什么呢,想了一下,还是做个不是很复杂的,举个用列名称控制显示列的例子好了。

我想要什么效果呢,就是数据库里存了好多的数据列,但是我不想都显示出来,只想要我想看的固定的那几个列,所以我就想要访问报表的时候,他把可以选看的列名称都显示给我,我可以自己选几个想看的列。

其实操作起来也不是很难的。老规矩,放个图先:



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




废话不多说了,简单介绍下我的制作方法吧~

首先 把数据导入到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当中所获取的行号进行排列的。

预览就有我们要的效果喽~搞定!嘿嘿~

中级的报表相对以前写的初级确实是多了很多步骤呢,也不知道自己描述的清不清楚~还有问题的同学欢迎提问喽~恩恩~













发表于 2009/1/12 13:11:33 | 显示全部楼层
LZ的学习笔记真的很棒啊,积极向LZ学习!
发表于 2009/1/12 15:12:58 | 显示全部楼层
提倡这学习方式
发表于 2009/1/19 16:30:40 | 显示全部楼层
这个好 支持个!
 楼主| 发表于 2009/2/1 17:14:46 | 显示全部楼层
马上中级3 制作好了 继续分享 哈哈
 楼主| 发表于 2009/3/26 10:57:49 | 显示全部楼层
图又没有了 再补一下
发表于 2009/3/26 11:18:00 | 显示全部楼层
支持个!
发表于 2009/3/30 09:37:29 | 显示全部楼层
这是啥报表?
 楼主| 发表于 2009/4/1 17:29:49 | 显示全部楼层
这是啥报表?
zhan200012 发表于 2009/3/30 09:37


是FineReport
Java报表工具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 08:56 , Processed in 0.017171 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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