请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

CMDebuger

注册会员

2

主题

6

帖子

34

积分

注册会员

积分
34
  • 117

    金币

  • 2

    主题

  • 6

    帖子

最新发帖
CMDebuger
注册会员   /  发表于:2025-5-5 14:39  /   查看:100  /  回复:8
1金币
从表根据主表的一个字段做了过滤匹配,但有些从表没有数据,从表上加上隐藏=iif(Count( Fields!OPCode.Value  )>0,false,true)后会留有一段空白

应该在主表的行隐藏,表达式里怎么写到对应的从表过滤行数量,iif(Count( “从表字段” )>0,false,true)这种应该是判断了所有从表行,有数据的也隐藏了

谢谢



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

8 个回复

倒序浏览
CMDebuger
注册会员   /  发表于:2025-5-5 21:21:37
沙发
单数据集的CountRows("DataSet1")能返回总行数
CountRows("DataSet1", "1=0")仍是总行数
CountRows("DataSet1", "a='1'")仍是总行数
过滤条件好像没起作用
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-5-6 09:29:35
板凳
问题描述:

主从报表设置隐藏条件。

问题解决:
您好,从您的描述看,您应该是想在子表数据位空的时候,把子表所在的主表行也进行隐藏。我根据您的截图测试了一下,主表的明细行嵌套子表,然后在子表设置过滤:


最后的效果来看,当子表没有数据的时候主表也不会显示:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-5-6 09:30:54
地板
Eden.Sun 发表于 2025-5-6 09:29
问题描述:

主从报表设置隐藏条件。

或者,您在具体描述一下您当前的报表设计情况和想要实现的具体效果,我们看看则呢么解决呢。
回复 使用道具 举报
CMDebuger
注册会员   /  发表于:2025-5-6 11:13:07
5#
本帖最后由 CMDebuger 于 2025-5-6 11:14 编辑

子表里过滤器来关联的主表

实现效果是子表没有数据时能隐藏,在子表里可以隐藏但是会有一段空白,在主表行的可见里写入表达式=IIf(CountRows("从表数据集名称", "关联字段 = " & Fields!主表关联字段.Value) = 0, True, False)未起到作用

另单建了一个数据集发现这个函数返回的都是总行数,似乎没起到过滤效果

本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-5-6 14:40:27
6#
本帖最后由 Eden.Sun 于 2025-5-6 16:04 编辑

count 函数式计数,您的表达式内部无论怎么处理,总的数据量都没有变化,所以计算结果都一样。
比如你有两条数据 0 和 1,count结果是2, 你把1 转换成0,他还是两条数据。

从你这个图片来看,你没有隐藏子表,或者说是主子表的过滤没有生效,所以子表在没有数据时,表头内容任然显示了:


感觉报表的设计应该不太对,你参考下下面的主子表设计,看看报表设计是不是正确的:


主子报表的设计实现
https://gcdn.grapecity.com.cn/showtopic-160989-1-1.html
(出处: 葡萄城开发者社区)




本帖子中包含更多资源

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

x
回复 使用道具 举报
CMDebuger
注册会员   /  发表于:2025-5-6 15:34:10
7#
我用了例子里的模板,子表中删除了D0002的数据,并将子表的可见性隐藏,会留一段空白:

然后在主表的行可见性添加表达式未起到作用,麻烦帮忙看看

附件好像不能上传模板,就把子表的D0002节点删除了



本帖子中包含更多资源

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

x
回复 使用道具 举报
CMDebuger
注册会员   /  发表于:2025-5-6 15:37:52
8#
本帖最后由 CMDebuger 于 2025-5-6 15:47 编辑

主表行可见性的表达式


本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-5-6 17:59:22
9#
CMDebuger 发表于 2025-5-6 15:37
主表行可见性的表达式

前面给你说了。直接用count计数是不行的。你这个是想通过子表的数据反过来影响主表的情况。你可以试试先用 lookupset 表达式,在主表上根据管理的字段查询到子表中对应的数据,然后计数,如果计数结果为 0, 就隐藏明细行。
lookupset 使用可以参考下这里的介绍:
https://www.grapecity.com.cn/sol ... t-doc-content_title
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部