例外は、呼び出しのターゲットによってスローされています
-
16-10-2019 - |
質問
これは比較的一般的なエラーであることは知っていますが、スクリプト用のVB.NETまたはC#を使用してカスタムレポートを作成できるようにするアプリケーションで作業しています。エラー処理は非常に貧弱で、自分のものを追加するほど知識が豊富ではありません(可能であれば)。
私のコードは、フォーマットされたレポートのテキストボックスに保存されている値を単に取得するだけです lastName、firstName コンマの後にすべてのキャラクターを切り捨てます。この値 苗字 レポートの新しいテキストボックスに配置されます。これが私のコードです:
Sub Detail1_Format
Dim lastNameFirstName As String = ""
Dim lastName As String = ""
Dim lastNameCommaIndex As Integer=
'set lastNameFirstName value from data on report'
lastNameFirstName = ReportUtilities.ReturnTextBoxValue(rpt,"Detail1","txtdtr_DTOOLS_CompanyName")
'find index of first comma in lastNameFirstName string'
lastNameCommaIndex = lastNameFirstName.IndexOf(",")
'set contents of lastName using substring of lastNameFirstString'
lastName = lastNameFirstName.SubString(0, lastNameCommaIndex)
'the error happens above when I use lastNameCommaIndex'
'to set the number of characters in my substring'
'set client name textbox value using lastName'
ReportUtilities.SetTextBoxValue(rpt,"Detail1","txtdtr_CALC_ClientName",lastName)
End Sub
エラーは、lastnamecommaindexを使用してサブストリング内の文字の数を設定すると発生します。それを番号に置き換えると、レポートは適切に公開されます。
解決
使用したいかもしれません string.split これはずっと簡単になります
例えば
If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then
lastName = lastNameFirstName.Split(",".ToCharArray())(0)
End If
.NET 4.0を持っていない場合、これがiSNULLORWRITESPACEの書き方です
Function IsNullOrWhiteSpace(ByVal s As String) As Boolean
If s Is Nothing Then
Return True
End If
Return s.Trim() = String.Empty
End Function
所属していません StackOverflow