Office中国论坛/Access中国论坛

标题: 求教:请高手帮忙改一下报表整列没数据不显示怎么搞? [打印本页]

作者: panyifan    时间: 2007-3-2 18:55
标题: 求教:请高手帮忙改一下报表整列没数据不显示怎么搞?
求教各位大虾报表  中没有数据(数据都为0)的那一列不显示   怎么搞

网上也查了很子贴子  没有跟这个一样的  看了一个整行为0不显示的例子 但是还是没搞懂

小弟是刚学的新手   水平不行给代码的话 看不太懂   

最好是能在我上传的程序上做个例子


感激不尽    [attach]23313[/attach]

作者: panyifan    时间: 2007-3-2 21:56
自已顶一下先   这里贴子沉的太快了 阿门

期待 .............

[em07]
作者: andymark    时间: 2007-3-2 22:06
思路:

可参考动态报表的做法,不绑定数据源,根据相关查询,先读取每列的值是否都为零,

不为零的通过ControlSource绑定报表的相关的字段,然后保存报表,打开就OK了






作者: panyifan    时间: 2007-3-2 23:39
谢谢 andymark  版主

不是我自己不想做  实在是因为能力不行   

我是刚学的新手  代码基本上都还看不懂   

[em04]

我也找了很多例子 但是跟我的需求一样的没有

现在想做这个功能真的是不知从何入手

能不能帮忙做个例子放上来    谢谢了


作者: sgrshh29    时间: 2007-3-3 00:19
有二个方法

1、在查询中使用IIf([标号C10/M]=0,"",[标号C10/M])之类的方法使0的位置置空,然后作为报表的数据源

2、在报表的对应控件中用=IIf([标号C10/M]=0,"",[标号C10/M])之类的方法作为文本框的数据源,但是文本框不能绑定,其名称也不能与字段名一样。

用方法2做了一部分供参考,其余你可自己完成。[attach]23334[/attach]

作者: andymark    时间: 2007-3-3 00:36
我想楼主的意思是;如果整列都为零,为零的列在报表就不显示出来,就连列标题也不应该显示

不知理解对不对
作者: panyifan    时间: 2007-3-3 00:40
非常感谢sgrshh29大哥

不过您上面的文件中找不到“=IIf([标号C10/M]=0,"",[标号C10/M])”这个是写在那个地方的?

[em04]

好像还是原文件   请帮忙再看一下  谢谢
作者: sgrshh29    时间: 2007-3-3 00:41
以下是引用andymark在2007-3-2 16:36:00的发言:


我想楼主的意思是;如果整列都为零,为零的列在报表就不显示出来,就连列标题也不应该显示

不知理解对不对

我猜楼主大概是要求凡是零的文本框都空着。
作者: panyifan    时间: 2007-3-3 00:43
“我想楼主的意思是;如果整列都为零,为零的列在报表就不显示出来,就连列标题也不应该显示



不知理解对不对”

andymark  版主

是这样的       不知有没有什么好方法   谢谢了


作者: sgrshh29    时间: 2007-3-3 00:50
以下是引用panyifan在2007-3-2 16:40:00的发言:


非常感谢sgrshh29大哥

不过您上面的文件中找不到“=IIf([标号C10/M]=0,"",[标号C10/M])”这个是写在那个地方的?

[em04]

好像还是原文件   请帮忙再看一下  谢谢

就写在“[标号C10/M]”这个文本框的“数据来源”中。这个文本框已经改名为“txt1”。
作者: panyifan    时间: 2007-3-3 00:51
以下是引用sgrshh29在2007-3-2 16:41:00的发言:



我猜楼主大概是要求凡是零的文本框都空着。



再次谢谢两位的帮助 andymark 版主理解是对的   就是说连列标题都不显示  是这个意思

都怪我的语言表达不清   不好意思了  sgrshh29    大哥

不知这样的需求怎样能实现

谢谢两位!!!
作者: andymark    时间: 2007-3-3 00:58
可以的

如果要显示的列标题和表中设计的标题不一样,还可以通过辅助表的方式实现
作者: panyifan    时间: 2007-3-3 17:26
以下是引用andymark在2007-3-2 16:58:00的发言:


可以的

如果要显示的列标题和表中设计的标题不一样,还可以通过辅助表的方式实现





andymark     版主  听你这样说   真是让人看到了一丝光明   真是热切盼望呀

那位神  能搭救一下我哎   我是新手  实在是不会呀  只希望能有个能实现同样功能的例子

那位热心高人能帮忙呀      感激不尽................




作者: sgrshh29    时间: 2007-3-4 16:25
以下是引用panyifan在2007-3-2 16:51:00的发言:





再次谢谢两位的帮助 andymark 版主理解是对的   就是说连列标题都不显示  是这个意思

都怪我的语言表达不清   不好意思了  sgrshh29    大哥

不知这样的需求怎样能实现

谢谢两位!!!

一般来说,报表都有固定的格式,如果因为数据为零就取消某个整列,势必要将后面的列向前移动(不然就空了一大块),破坏了整个报表的排版,其实是个很坏的想法。不知道为什么要这样做?当然如果一定要这样做,在报表的事件中可以做到,如果你需要示例,可以帮你做一个,但是本人是不赞成这种报表做法的。acceess的应用,本是为了简单实用,提高工作效率,而不是其它目的。
作者: 浩雨    时间: 2007-3-4 18:15
问题是表没设计好,为什么不改一下表呢?把大于零数据记录下来,没数字不记录,不就少这么麻烦了吗?数据库体积也可以小一点。
作者: panyifan    时间: 2007-3-4 23:18
以下是引用sgrshh29在2007-3-4 8:25:00的发言:

一般来说,报表都有固定的格式,如果因为数据为零就取消某个整列,势必要将后面的列向前移动(不然就空了一大块),破坏了整个报表的排版,其实是个很坏的想法。不知道为什么要这样做?当然如果一定要这样做,在报表的事件中可以做到,如果你需要示例,可以帮你做一个,但是本人是不赞成这种报表做法的。acceess的应用,本是为了简单实用,提高工作效率,而不是其它目的。

谢谢 sgrshh29 大哥

这样做是因为标号的种类很多 但是按一定时间段查询出来的结果  可能只有几个是有数值的

所以想把那些没有数值的列隐藏掉 要不然就太长了(总的标号种类有30个之多,但是按时间

段查询出来的结果一般只有5个左右)一张纸上没法打印  并且中间还有很多列值都是0的

如果老师能做个例子出来供学习     真是感激不尽了

谢谢了sgrshh29老师!!!



   
作者: panyifan    时间: 2007-3-4 23:29
以下是引用浩雨在2007-3-4 10:15:00的发言:


问题是表没设计好,为什么不改一下表呢?把大于零数据记录下来,没数字不记录,不就少这么麻烦了吗?数据库体积也可以小一点。

谢谢 浩雨 老师 能关注此贴    我是个新手 表设计可能是不太好   老师说“把大于零数据记录下来,没数字不记录” 我不太理解您说的意思[em04]   [em04]    老师能不能说具体些

谢谢!!!
作者: sgrshh29    时间: 2007-3-5 00:42
按你的说法,粗略的做一个你参考,但是还有一个问题。这个问题可以在报表的设计界面中通过调整各个相关控件的宽度,务必使所有控件在一页内,然后在代码中调整各个相关控件宽度(示例中仅仅调整了控件的位置,没有调整相关控件的宽度,而是保持控件原有的宽度)。[attach]23365[/attach]

作者: panyifan    时间: 2007-3-5 17:46
以下是引用sgrshh29在2007-3-4 16:42:00的发言:
按你的说法,粗略的做一个你参考,但是还有一个问题。这个问题可以在报表的设计界面中通过调整各个相关控件的宽度,务必使所有控件在一页内,然后在代码中调整各个相关控件宽度(示例中仅仅调整了控件的位置,没有调整相关控件的宽度,而是保持控件原有的宽度)。[attach]23365[/attach]



谢谢  sgrshh29 老师    真是太好了

非常感谢  !!!

不过我下下来在我的电脑上运行时出现错误   见下图   不知是什么原因

代码我正在学习  您说的调整相关控件的宽度问题   我弄懂了您的这个例子自己再试着做吧

现在是可以知道怎么出试  怎么出做了    再次谢谢   sgrshh29 老师的热心帮助  [attach]23374[/attach]
[attach]23375[/attach]

作者: sgrshh29    时间: 2007-3-5 19:27
我是winxp+officexp的系统,格式是acc2000,请你检查一下。我这边没有出现你这种提示,一切显示正常。
作者: panyifan    时间: 2007-3-5 20:27
以下是引用sgrshh29在2007-3-5 11:27:00的发言:
我是winxp+officexp的系统,格式是acc2000,请你检查一下。我这边没有出现你这种提示,一切显示正常。



好的  sgrshh29 老师    谢谢了   

我现在在按您的代码新建了一个报表在调试   有问题解决不了的话再来请教    麻烦了sgrshh29 老师 很荣幸遇到您这样的好人 帮我解决了这个问题  顺祝老师猪年 好运常伴 合家幸福美满!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3