レポート デザイナー V2.0 を使用してレポートを作成しようとしていますが、2 つの日付間の平日の日数を計算する VB 関数を作成しました。
vb.Net でコードを記述し、レポート内のカスタム コード タブに移植しました。
関数のシグネチャは次のようになります
Public Function CalculateWorkdays(ByVal startdate As Date, ByVal enddate As Date) As String
Return "Test"
End Function
次に、レポート変数をこの関数に渡そうとします
=Code.CalculateWorkdays(CDate(Parameter.MyStartDate), CDate(Parameter.MyEndDate))
これは実行に失敗します
署名を変更すると
Public Function CalculateWorkdays(ByVal startdate As String, ByVal enddate As String) As String
Return "Test"
End Function
=Code.CalculateWorkdays(Parameter.MyStartDate, Parameter.MyEndDate)
これは実行され、成功します。
したがって、関数呼び出しの前に文字列の日付をキャスト/変換しようとするのではなく、関数自体の中でそれを実行しようとしました。
Dim startdate as Date
startdate = Date.Parse(strstartdate)
ただし、関数内で文字列を日付型にキャスト/変換しようとすると失敗します。奇妙なことに、私は次のようなことができます
Public Function CalculateWorkDays(ByVal strstartdate As String) As String
Dim startDate as Date
startDate = Today.AddDays(30)
Return startDate.ToString()
End Function
どんな助けでも大歓迎です。