2009-04-09 2 views
0

다른 필드의 값에 따라 그룹 합계에서 하나의 값을 제외하려면 어떻게합니까?다른 필드의 값을 기준으로 그룹화 합에서 하나의 값을 제외하는 방법은 무엇입니까?

즉, Report => Report Properties => Code를 열고 사용자 정의 코드를 삽입합니다. 그러나 아래의 경우에 다른 필드의 숫자 값을 제외 시키려면 어떻게해야합니까?

Public Function ChangeWord(ByVal s As String) As String 
    Dim strBuilder As New System.Text.StringBuilder(s) 
    If s.Contains("Others") Then 
     strBuilder.Replace("Others", "Other NOT INCL") 
     Return strBuilder.ToString() 
     Else : Return s 
    End If 
End Function 
+0

아래 코드를 시도했지만 보고서가 실행되었지만 두 경우 모두 값이 영향을받지 않습니다. 어떤 아이디어? – Fet

답변

4

난 당신이 같은 행의 셀의 문자열 값이 "기타"를 포함 합에서 숫자 값을 제외 할 수 있으리라 믿고있어, 당신이 제공 한 기능은 그룹으로 사용된다 보고서의 표에 대한 조건. 이것이 잘못된 경우 사과드립니다.

두 번째 로직 (함수 또는 Iif 조건)을 사용하지 않으면이 작업을 수행 할 수 없습니다. 나는 순간에 이것을 테스트 할 수 SSRS을 가지고 있지만 (당신의 값 열을 가정하면 코드는 같이 보일 것입니다, 정수하지 않습니다 당신의 조건부 합계를 원하는 셀에,

Public Function ExcludeOthers(rowDesc As String, rowVal as integer) 
    if ChangeWord(rowDesc) = "Other NOT INCL" 
     Return 0 
    else 
     Return rowVal 
    end if 
End Function 

다음 표시 : 또는

=Sum(ExcludeOthers(Fields!desc.Value,Fields!val.Value)) 

, 당신은 기능이없는이 작업을 수행 할 수있는 조건부 합계가 표시되는 위치를 셀에 Iif를 사용하여 :

=Sum(Iif(ChangeWord(Fields!desc.Value) = "Other NOT INCL",0,Fields!desc.Value)) 

을 따라 원본 데이터의 특성상 계산 된 열을 보고서의 원본 쿼리에 추가하여이 작업을 수행 할 수도 있습니다.

나는 두 번째 또는 세 번째 옵션을 선호합니다. 사용자 지정 코드는 이러한 목적으로 과도한 사용으로 보입니다.

+0

당신은 훌륭합니다! 고맙습니다 백만 Ed! – Fet

관련 문제