-2

는 중 하나는 (들어, 동안) 루프가이 코드를 작성했습니다 여기SSRS 사용자 지정 코드 루프

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 개의 값이 포함 된 행렬이 있는데, 값이 5보다 작 으면 Q27_A_1의 모든 값의 합계를 계산하려면 어떻게해야합니까?

1

+0

tablix에 그룹이 없으므로 마지막 행 계산 결과가 표시됩니다. 또한 코드에서 ** FOR ** 루프를'num * 3'으로 대체 할 수 있습니다. 사용자가 원하는 코드를 얻을 필요가 없더라도 마찬가지입니다. 더 잘 설명하고 샘플 데이터와 기대되는 결과 예제를 추가하십시오. –

+0

내 문제를 더 깊이 설명해 드리겠습니다. 13, *, 16과 같은 모든 값의 합계를 계산해야하는 데이터 집합이 있으므로 * 출력을 원합니다. "*"는 숫자 값에 더할 수 없기 때문에. 선택한 매개 변수에 따라 행 값의 수가 바뀝니다 (마지막 행 Group B vallue = 16 * 3 = 54) AB 포도 5 개 *포도 (일부 경우에 해당) 그것은이다 13 오렌지 16 나는이 모든 값들의 합계를 출력하고 싶다 다른 어떤 방법으로도이 자리에있다. –

+1

SSRS에서'= SUM (CINT (Fields! B.Value))' , B가 문자열 열 (varchar, nvarchar, text ...)이라고 가정하고이 코드에서 사용자 정의 코드를 사용할 필요가 없습니다 –

답변

0

그래, 내가 이해 Sum 함수의 요점이 작업을 수행 할 수 조작. Sum 함수를 사용하여이 작업을 수행하는 것이 매우 쉽습니다. 하지만 5000 개 이상의 매트릭스 박스가있는 거대한 보고서가 있는데 그 중 하나를 신청해야합니다. 따라서이 코드에서 사용자 정의 코드가 여기서 작동하고 잘못된 코드가 있는지 확인하려고합니다.

공공 기능 SafeConvert I 정수로 = 0~2

S

다음 + = NUM ​​들어 정수

같은 문자열

어둡게 S 같이 (문자열로서 ByVal의 인분)

반품 s

최종 기능

마지막 셀을 3 번 추가하는 것입니다.나는 런타임 동안 셀의 모든 값을 추가하고 싶다.

1

이를 달성하기 위해 사용자 정의 코드를 사용할 필요가 없습니다. 모든 문자열 값이 실제로 숫자라고 확신하는 경우 tablix 표현식에 sum과 함께 많은 변환 함수 중 하나를 사용하여 모든 것을 함께 추가 할 수 있습니다. 소수점 값을

=sum(cint(Fields!B.Value)) 

:

=sum(cdec(Fields!B.Value)) 

그리고 더블 값 :

=sum(cdbl(Fields!B.Value)) 

것은 이러한 식을 사용하려면 그룹을 추가해야합니다 전체 번호는

데이터 집합을 기반으로 Tablix에 입력하고 Group Total 텍스트 상자에 다음 표현식을 입력하십시오.


당신이 당신의 테이블 릭스에 그룹이 필요 다시 5보다 작은 모든 값을 요약하면 당신은 sum 기능을 사용할 수 있습니다. 그러나이 경우, 당신은 0와 5 이상의 값을 대체해야합니다, 그래서 그들은 sum의 총에 추가하지 않습니다

=sum(iif(Fields!Q27_A_1.Value < 5, Fields!Q27_A_1.Value, 0))