生成数字以在 s-s-rs 报告中显示序列时出现问题
Posted
技术标签:
【中文标题】生成数字以在 s-s-rs 报告中显示序列时出现问题【英文标题】:Issue while generating number to show sequence in s-s-rs report 【发布时间】:2018-05-01 14:33:00 【问题描述】:我正面临 s-s-rS 报告的问题,我试图生成数字以显示字段序列。我正在使用报告中的代码生成这些数据。但它有两个主要问题。
-
在这里,我可以在父报表中获取数字,但在子报表中,此编号不是从 1 开始,而是在子报表中继续,并且不考虑父报表值。
我的代码如下所示。这将生成像 这样的数字
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 实现这一点。
第二个问题是。
-
有些字段是我得到正确的数字,例如从父报告中得到的数字,在 PDF 中出现问题,一些额外的数字出现在报告中,而且报告和 PDF 中显示的数字对于某些字段来说是不同的。
我不知道为什么会出现这个问题以及我必须应用什么解决方案。
如果有人知道这些问题的解决方案,请帮助我..
【问题讨论】:
我认为看看你的表结构的设计会有所帮助。这可能是组嵌套的问题。 以上数据是单行的,在数据库中这些字段没有单独的表。在表格中,我们存储二级字段和标题的数据,即一级文本在报告中被硬编码。 我指的是您报告中的表格设计,而不是数据库。就报表设计而言,数据集来自哪里并不重要。 【参考方案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), ... 等等
【讨论】:
以上是关于生成数字以在 s-s-rs 报告中显示序列时出现问题的主要内容,如果未能解决你的问题,请参考以下文章