Пользовательский кодовый цикл SSRS
Любой из вас, пожалуйста, объясните мне, как работает цикл loop (For, While)
A B
Apple 13
Grape 5
Orange 16
Я написал этот код, но он здесь не работает.
Public Function SafeConvert(ByVal num As String) As String
Dim S as Integer
For i as Integer = 0 to 2
s += num
next
Return s
End Function
Вместо добавления каждого числа SSRS добавляет только последнюю ячейку 16 * 3 раза и показывает неверный результат.
И не могли бы вы ответить на этот вопрос?
У меня есть матрица, текстовое поле которой содержит 3 значения, как рассчитать сумму всех значений для Q27_A_1
если значение меньше 5?
2 ответа
Да, я понимаю вашу функцию точки суммирования для выполнения этой операции. было бы очень легко добиться этого с помощью функции Sum. Но у меня есть гигантский отчет с более чем 5000 матричных блоков, и мне нужно подать заявку на него. Так что просто хочу подтвердить, работают ли здесь пользовательские коды и что не так в этом коде строк.
Открытая функция SafeConvert(ByVal num As String) как String
Dim S как целое число
Для меня как целое число от 0 до 2
s + = число
следующий
Возврат с
Конечная функция
То, что он делает, просто добавляет последнюю ячейку в 3 раза. Я хочу добавить все значение ячейки во время выполнения.
Вам не нужно использовать какой-либо пользовательский код для достижения этой цели. Если вы уверены, что все ваши строковые значения на самом деле являются числами, вы можете использовать одну из многих функций преобразования вместе с sum
в вашем выражении tablix, чтобы сложить все вместе.
Для целых чисел:
=sum(cint(Fields!B.Value))
Для десятичных значений:
=sum(cdec(Fields!B.Value))
И для двойных значений:
=sum(cdbl(Fields!B.Value))
Чтобы использовать эти выражения, вам нужно будет добавить группу к вашему tablix на основе вашего набора данных и поместить эти выражения в ваш Group Total
текстовое окно.
Чтобы суммировать все значения, которые меньше, чем 5, снова вам нужно иметь группу на вашем tablix, и вы можете использовать sum
функция. Однако в этом случае вам нужно будет заменить любые значения 5 или более 0
таким образом, они не добавляют к общему количеству sum
:
=sum(iif(Fields!Q27_A_1.Value < 5, Fields!Q27_A_1.Value, 0))