1

クリスタルレポートで次のコードを実行すると、

「ここには文字列が必要です」

2番目のケースで。{?Pm-Student_course_attendance_csv.Level}を文字列としてキャストしようとしましたが、うまくいきませんでした

 Global NumberVar grade;
 Global NumberVar baseline;

Select ({?Pm-Student_course_attendance_csv.Level})
  Case "R", "TL", "TU", "OTH", "P", "BTECFS": 
    If (CStr({PM_csv.mv_value}) = "Pass") Then
       "On Track"
    Else
       "Below"

  Case "H", "ASD", "AD", "AS", "G":     //error from this line onwards inclusive
     Select (CStr({PM_csv.mv_value}))
        Case "A*":
            grade := 11
        Case "A*/A":
            grade := 10
        Case "A":
            grade := 9
        Case "A/B":
            grade := 8
        Case "B":
            grade := 7
        Case "B/C":
            grade := 6
        Case "C":
            grade := 5
        Case "C/D":
            grade := 4
        Case "D":
            grade := 3
        Case "D/E":
            grade := 2
        Case "E":
            grade := 1
        Case "U":
            grade := 0
        Default :
            grade := 0;
4

1 に答える 1

2

数式に2つの異なる戻り値を含めることはできません。エラー以上から文字列を返しますが、その下では数値を返そうとしています(数式の戻り型も最後の割り当てであるため、数式が最後に行うのはgrade:=1、数式が値1を返そうとする場合です。式の後半では、ケースごとに文字列の戻り値を追加する必要があります。

...
  Case "H", "ASD", "AD", "AS", "G":     //error from this line onwards inclusive
     Select (CStr({PM_csv.mv_value}))
        Case "A*":
            grade := 11;
            "Return value" //<---- Must be a string
        Case "A*/A":
...
于 2012-11-09T17:49:38.117 に答える