如何在 RDLC VB.NET 中添加行 Table

How To Add Rows Table in RDLC VB.NET

先生/女士您好

我在 VB.NET 的报表设计方面需要帮助。我的设计需要 25 行,但我在数据集中的数据查询只有或少于 25 行。我的问题是如何在我的报告中的 table 中添加额外的空白行。看我的照片谢谢!!!

之前:

之后:

您可能知道,Tablix 中只需要 1 行,并且报告器将根据您的数据集生成正确数量的行。

遗憾的是,没有简单的方法可以用固定数量的空行填充您的页面。但是,有一些解决方法可以为您提供所需的结果。因为您知道最大行数并且该数字相对较低,您甚至可以手动完成。

  1. 使用线条:您可以在报告 body 中 table 边界通常经过的地方添加线条使用报告项 Line.
    这对于水平边框可能很棘手,但您可以简单地忽略它们,只添加列边框的垂直线和所需 table 大小的水平底线。这将给出一个很好的 table 轮廓,而无需做任何工作。

  2. 自动化方法: 在将数据集发送给记者之前,您可以获得行数。您可以使用所需的行数 (25 - length dataset) 计算差异,您可以将其用于 2 种可能的解决方案。

    • 您可以创建多个空的 object,或者只是创建只有空字符串作为值的 object,等于该差值。然后将这些 object 添加到您的原始数据集,这将使总行数达到所需的大小。
      当报告者生成 table 时,将打印空行来代替这些 object。
    • 您可以创建一个具有该长度的新列表。您用空字符串填充此列表并将其作为第二个数据源发送给您的记者。
      在报表设计器中,您为新的第二个数据集添加第二个 table,正好在原始 table 下方,列数相同,但没有 header。
      这将导致报告器在原始 table.
    • 下方生成正确数量的空行
  3. 手动方法:将所需数量的行添加到 table,就在包含数据的行下方。 (在您的示例中,这将是 25 个空行)。 对于每一行,您需要为 Hidden 属性 定义一个表达式以确定何时显示该行。

    =IIF(Count(Fields!ID.Value,"DatasetName") < RowNumer , False, True)

    所以基本上如果数据集中的总行数低于空行位置(RowNumber),该行将被显示。否则该行将被隐藏。
    应用于每一行将如下所示:

    //Empty Row 1  
    =IIF(Count(Fields!ID.Value,"DatasetName") < 1, False, True) 
    
    //Empty Row 2
    =IIF(Count(Fields!ID.Value,"DatasetName") < 2, False, True)
    
    //... Empry Row 3 to 24
    
    //Empty Row 25
    =IIF(Count(Fields!ID.Value,"DatasetName") < 25, False, True)
    

现在您有 3 种可能性可供选择。 自动化方法可能稍微干净一些,但需要您在将其发送给记者之前在代码中做必要的准备工作。
手动方法可能看起来有点健壮,但由于行数较少,它易于管理并且可以轻松添加到设计中,而无需对代码进行任何更改。