Ошибка при создании номера для отображения последовательности в отчете ssrs - PullRequest
0 голосов
/ 01 мая 2018

У меня проблема с отчетом SSRS, где я пытаюсь сгенерировать числа для отображения последовательности полей. Я генерирую эти данные, используя код в отчете. но у него есть две основные проблемы.

  1. Здесь я могу получить номера в моем родительском отчете, но в подотчете эта нумерация не начинается с 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.

Второй выпуск.

  1. В некоторых файлах я получал правильные числа, как в отчете parrent, из-за проблем в PDF некоторые экстремальные числа появляются в отчете, а также числа, отображаемые в отчете и в PDF, отличаются для некоторых полей.

enter image description here

Я не могу понять, почему возникла эта проблема и какое решение я должен применить.

Пожалуйста, если кто-нибудь знает решение этой проблемы, пожалуйста, помогите мне ..

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете использовать следующий пользовательский код

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), ... и т. Д.

...