【问题标题】:How to make rows invisible while printing reports?打印报告时如何使行不可见?
【发布时间】:2013-05-26 20:44:20
【问题描述】:

我正在使用 .rldc 文件从我的程序中定义报告的布局。问题是,它将用于增量打印。这意味着纸张将被反复使用,因为需要打印较新的行。我正在尝试以这种方式处理它:

  1. 在报告视图中列出所有相应的数据。
  2. 使旧行不可见,只显示最新行。
  3. 打印。

这样,最后一行已经正确放置。问题是,我不知道如何实现这一点。谁能帮帮我?

【问题讨论】:

  • 如何将数据源分配给报表?我有一个类似的问题。我创建数据集并以编程方式填充数据表。由于它是在循环中完成的,因此我可以每次检查是否应在 DataTable 中添加该行。最后,我将 DataTable 分配给报表 DataSource
  • 我可以检查是否应该添加某一行,但问题是,我需要要添加的行以正确偏移最后一行,这将是那一行打印。我只是想要一种方法来隐藏前面的行,这样它们就不会被打印在纸上已经存在的行上。
  • 有没有办法将旧行“打印”成白色,最后一行“黑色”,可以这么说?
  • 如果我用白色打印它,它也会打印在旧的打印文本上。另外,这张纸不是普通的证券纸,但它背后有一个设计,所以如果有的话,它仍然是不可行的。

标签: vb.net visual-studio-2008 printing reportviewer


【解决方案1】:

您可以在报表定义中针对行可见性变量创建 IIF(condition,true,false) 语句。

我猜最好的方法是在你的数据源中定义一个排名列。

示例:

select col1,col2,col3,RANK() OVER (ORDER BY col3 DESC) AS 'rank' from table1

然后在表格或矩阵中,单击要根据表达式将边框和文本设置为白色的行或/和列。

转到边框颜色的属性和下拉菜单 选择表达式并输入(基于我的示例查询)

=IIf(rank.value max(rank.value),White,Black) 这不会删除行只会使边框变白(不可见)

你可以对 Font Color 属性做同样的事情。

我认为这是你在这个问题上的最佳选择。 我能想到的其他解决方案是隐藏不必要的行(这也替换了可见行)

然后使用带有公式的表达式向下移动表格,例如在实际行 * 1 行的高度之前隐藏的行数 nr,只有我不确定这是否适用于不编程 RDL 扩展..

祝你好运!

【讨论】:

  • 将内容设置为“白色”是否会使它们在打印时不可见?这张纸不是纯白色的,所以如果不是这样,它就会被看到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多