Eccezione è stata generata dalla destinazione di una chiamata
-
16-10-2019 - |
Domanda
So che questo è un errore relativamente comune, ma sto lavorando in un'applicazione che consente ai report personalizzati da scrivere utilizzando vb.net o C # per lo scripting. La gestione degli errori è molto povera e io non sono abbastanza informato per aggiungere la mia (se è ancora possibile).
Il mio codice recupera semplicemente un valore che viene memorizzato in una casella di testo sul rapporto formattato come Cognome, Nome e tronca tutti i caratteri dopo la virgola. Questo valore Cognome è collocato in un nuovo testo sulla relazione. Ecco il mio codice:
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
L'errore si verifica quando uso lastNameCommaIndex per impostare il numero di caratteri nella mia stringa. Se lo sostituisco con un numero il rapporto è pubblicato correttamente.
Soluzione
Si potrebbe desiderare di utilizzare string.split si renderà questo molto più facile
per es.
If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then
lastName = lastNameFirstName.Split(",".ToCharArray())(0)
End If
Ecco come si scrive IsNullOrWriteSpace se non si dispone di .NET 4.0
Function IsNullOrWhiteSpace(ByVal s As String) As Boolean
If s Is Nothing Then
Return True
End If
Return s.Trim() = String.Empty
End Function