在水晶报表中抑制列并删除空白区域

本文关键字:删除 空白 区域 水晶 报表 | 更新日期: 2023-09-27 18:08:30

我正在开发Microsoft Visual Studio 2003。

我正在寻找一种方法来抑制一列,如果它是空的,并取代其他列留下的空白空间。

我到处找,但是找不到2003版的兼容方法。

存在简单的方法吗?谢谢你的帮助。

在水晶报表中抑制列并删除空白区域

Crystal Reports没有自动(或简单)的方式来动态移动列。

您可以考虑多个标题和详细信息部分,它们可以近似地实现这一点——只需抑制包含NULL值字段的部分。

右键单击报表对象并选择Format Field。在"格式"界面->"号码"页签中单击"自定义"按钮。在自定义样式界面->数字选项卡上选中"如果为零则抑制"框。

但是我不认为它会在2003版本中存在

右键单击该字段单击格式对象然后点击公共选项卡->在那里你会看到抑制复选框(选中那个复选框)旁边是公式编辑器图标点击下一个写公式

if isnull({FieldName} ) then 
true 
else
false

无论如何,我遇到这个问题是出于一个完全不同的原因。我在报告中有多个组,其中一个是Document Date。右键单击群组,进入群组选项,选中"保持群组在一起"选项。这意味着当有多个日期时,它们会被移到第二页,并在第一页上留下一大块空白。

空白取决于查询返回的结果集;有时会出现,有时不会,这取决于有多少记录是同一日期的。我花了整整两个小时才弄明白。

小组的Section expert中的"Keep Together"是UNCHECKED,我甚至没有意识到有一个"Keep group Together"选项,直到我偶然发现它。

我发现在Visual Studio 2008中的水晶报表中,如果字段值为null,则很难抑制列名。我写代码({tableName.FiledName})="".

这很简单。只需右键单击列名,选择格式化对象,然后将打开一个窗口。在"常用"页签中,选中"抑制"复选框。点击"抑制"复选框旁边的x-2图标,打开格式公式编辑器,编写代码({tableName.FiledName})="",保存退出。如果您犯了错误,编辑器将弹出错误消息。您会注意到列名将变暗或禁用。

遵循步骤:

  1. 右击
  2. 点击->对象格式
  3. 下一步点击通用选项卡->
  4. 你会看到抑制复选框(选中那个复选框)->
  5. 旁边是公式编辑器图标,点击下一个写公式IIF(isnull({datasetName.column_name}), True, False)

它的工作很好,但不能隐藏列的空白空间,我认为这很难