2012-03-09 4 views
1

보고서 작성기 3.0의 보고서 (예 : 20124, 20125)에 다중 값 단일 문자열을 매개 변수 필드로 사용합니다. 이제이 문자열을 분리하여 "20125"대신 "20124"및 "2012"대신 "Summer 2012"를 표시하려고합니다. Visual Basic을 사용하고 있습니다. 다음은 Report Builder 3.0 사용자 정의 코드에서 작성한 두 가지 기능입니다. 이 오류는 "If Right (yearterm) ..."줄의 두 번째 함수에서 오류가 발생합니다. "String.Right"라고 쓰면 오류가 발생합니다. " 'Right'는 오류가 아닙니다. "If"전체 "If 문"을 가져 오면 "20124,20125"는 "2012, 2012"를 제공합니다.If 문에서 Right 함수를 사용하면 구문 오류가 발생합니다.

이 작업을 수행하려면 어떻게해야합니까?

Public Function SplitParameterValues(ByVal parameter As Parameter) As String 
    Dim result As String 
    Dim a(0 To 10) As String 
    a = Split(parameter.Value, ",") 

    For i As Integer = 0 to a.length - 1 
     result = result +", " + YearTermTranslation(a(i)) 
    Next 

    Return result 
End Function 

Public Function YearTermTranslation(ByVal yearterm As String) As String 
    Dim result As String 
    Dim term As String 
    Dim year = Left(yearterm, 4) 

    If Right(yearterm, 1) = 5 
    Then term = "Fall" 
    Else If Right(yearterm, 1) = 4 
    Then term = "Summer" 
    Else If Right(yearterm, 1) = 3 
    Then term = "Spring" 
    Else term = "Winter" 
    End If 

    result = term + " " + year 

    Return result 
End Function 
+3

제발 ... 들여 쓰기 ... – Ryan

+2

@ user1258439 : VBA에서 이것을 수행하고 있습니까? 나는 vb.net에서 이것을하고 있다는 강한 느낌이 든다. 내가 묻는 이유는 "Dim year = Left (yearterm, 4) "과 "반환 결과"가 VBA/VB6 구문이 아니기 때문입니다. –

답변

2

문제 은 당신이 당신의 0123에 Then 별도의 라인들뿐만 아니라 구문 오류를 가하고있는 것입니다; 그것은 복사 - 붙여 넣기 오류가 아니면 Right과 아무 관련이 없습니다.

Public Function YearTermTranslation(ByVal yearterm As String) As String 
    Dim result As String 
    Dim term As String 
    Dim year = Left(yearterm, 4) 

    If Right(yearterm, 1) = 5 Then 
     term = "Fall" 
    ElseIf Right(yearterm, 1) = 4 Then 
     term = "Summer" 
    ElseIf Right(yearterm, 1) = 3 Then 
     term = "Spring" 
    Else 
     term = "Winter" 
    End If 

    result = term + " " + year 

    Return result 
End Function 

아, 이것이 실제로 VB.NET ... VB.NET을 배우십시오.

Public Function SplitParameterValues(ByVal parameter As Parameter) As String 
    Dim result As String = String.Empty 
    Dim a() As String = parameter.Value.Split(","c) 

    For i As Integer = 0 To a.length - 1 
     result &= ", " & YearTermTranslation(a(i)) 
    Next 

    Return result 
End Function 

Public Function YearTermTranslation(ByVal yearterm As String) As String 
    Dim term As String 
    Dim year As String = yearterm.Substring(0, 4) 

    Select Case yearterm(yearterm.Length - 1) 
     Case "5"c 
      term = "Fall" 
     Case "4"c 
      term = "Summer" 
     Case "3"c 
      term = "Spring" 
     Case Else 
      term = "Winter" 
    End Select 

    Return term & " " & year 
End Function 
+0

Minitech, Wow. 감사. 매력처럼 작동합니다. –

+0

이 질문에 답이없는 섹션이 더 이상 나오지 않도록이 답변을 확인하십시오. – Hari