Crystal Report移除空字段抑制导致的空白行失败求助
解决Crystal Reports中空字段抑制后仍出现空白行的问题
我太懂这种被莫名空白行折腾的烦躁了!试试下面这些针对性的步骤,不用额外添加新节就能搞定:
先补全基础设置的遗漏点
- 给每个字段单独配置空白抑制:右键行内的每个字段 → 「Format Field」→ 切换到「Common」标签 → 勾选「Suppress」,点击旁边的公式按钮,输入:
别只依赖文本对象的全局设置,单个字段的抑制才是解决空白行的基础。IsNull({你的字段名}) Or {你的字段名} = "" - 开启文本对象的自动收缩:右键包含字段的文本对象 → 「Format Text」→ 「Common」标签,同时勾选「Can Grow」和「Can Shrink」,再确认「Suppress Embedded Blank Field Lines」已经勾选。这一步能让文本对象自动剔除空字段占用的行空间。
- 隐藏完全空白的细节节:右键细节节的灰色条 → 「Format Section」→ 「Common」标签,勾选「Suppress Blank Section」。如果整行内容都为空,整个节会直接被隐藏,不会留空白。
终极方案:用公式拼接非空内容
如果上面的方法还是有漏网的空白行,直接用公式把需要显示的内容拼接起来,自动过滤空值和多余换行:
Trim( // 按你的字段逐一判断,非空才拼接内容+换行 If Not(IsNull({TableGeneric.IsTaxable}) Or {TableGeneric.IsTaxable} = "") Then "是否应税: " & {TableGeneric.IsTaxable} & Chr(13) & Chr(10) Else "" & If Not(IsNull({Table1.TaxTypeId}) Or {Table1.TaxTypeId} = "") Then "税种ID: " & {Table1.TaxTypeId} Else "" )
把这个公式拖到细节节里,代替原来的多个字段/文本对象。公式里的Chr(13)&Chr(10)是换行符,只有前面的字段非空才会添加,不会凭空出现空行。
纠正你之前的公式逻辑偏差
你之前尝试的几个公式逻辑没对准空值判断:
if({TableGeneric.IsTaxable}="Yes") then false else true:这个是只有字段值为"Yes"时才显示,其他情况都隐藏,不是判断空值的逻辑。NOT(isnull({TableGeneric.IsTaxable})):这个只排除了NULL,但没处理空字符串"",所以空字符串的字段还是会显示,导致空白行。
按上面的步骤来,应该能彻底解决空白行的问题!
内容的提问来源于stack exchange,提问作者Abdul Basit Mehmood
相关产品推荐
相关产品推荐

