【问题标题】:Issue while generating number to show sequence in ssrs report生成数字以在 ssrs 报告中显示序列时出现问题
【发布时间】:2018-05-01 14:33:00
【问题描述】:

我正面临 SSRS 报告的问题,我试图生成数字以显示字段序列。我正在使用报告中的代码生成这些数据。但它有两个主要问题。

  1. 在这里,我可以在父报表中获取数字,但在子报表中,此编号不是从 1 开始,而是在子报表中继续,并且不考虑父报表值。 我的代码如下所示。这将生成像
  2. 这样的数字

1 个虚拟数据 1.1 虚拟数据 1.2 虚拟数据 2个虚拟数据 2.1 虚拟数据

Dim currentValue As Double
Public Function GetCounter(ByVal iCounter As Double, ByVal incrementCounter 
  As Boolean) As Double
    If (incrementCounter = true) Then
        iCounter = (iCounter + currentValue)
        currentValue = (currentValue + 0.1)
    End If

    Return iCounter
End Function

但是通过我的子报告,我想生成像

这样的数字

1 个虚拟数据 1.1 虚拟数据 1.1.1 虚拟数据 1.1.1.1 虚拟数据 1.1.1.2 虚拟数据 1.1.2 虚拟数据 1.1.2.1 虚拟数据 1.1.2.2 虚拟数据 1.2 等等。

我不知道如何通过 subReport 实现这一点。

第二个问题是。

  1. 有些字段是我得到正确的数字,例如从父报告中得到的数字,在 PDF 中出现问题,一些额外的数字出现在报告中,而且报告和 PDF 中显示的数字对于某些字段来说是不同的。

我不知道为什么会出现这个问题以及我必须应用什么解决方案。

如果有人知道这些问题的解决方案,请帮助我..

【问题讨论】:

  • 我认为看看你的表结构的设计会有所帮助。这可能是组嵌套的问题。
  • 以上数据是单行的,在数据​​库中这些字段没有单独的表。在表格中,我们存储二级字段和标题的数据,即一级文本在报告中被硬编码。
  • 我指的是您报告中的表格设计,而不是数据库。就报表设计而言,数据集来自哪里并不重要。

标签: c# reporting-services ssrs-2008 ssrs-2012


【解决方案1】:

您可以使用以下自定义代码

Dim numbers = New Integer() {0, 0, 0, 0} 

Public Function Seq(lev as Integer) As String

Select Case lev
Case 0
numbers(0) = numbers(0)+1
numbers(1) = 0
numbers(2) = 0
numbers(3) = 0
Return Cstr(numbers(0))

Case 1
numbers(1) = numbers(1)+1
numbers(2) = 0
numbers(3) = 0
Return Cstr(numbers(0)) & "." & Cstr(numbers(1))

Case 2
numbers(2) = numbers(2)+1
numbers(3) = 0
Return Cstr(numbers(0)) & "." & Cstr(numbers(1)) & "." & Cstr(numbers(2))

Case 3
numbers(3) = numbers(3)+1
Return Cstr(numbers(0)) & "." & Cstr(numbers(1)) & "." & Cstr(numbers(2)) &"." & Cstr(numbers(3))

End Select

End Function

group1 的表达式为 = Code.Seq(0),group2 的表达式为 =Code.Seq(1), ... 等等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多