Se inició una excepción por el destino de una invocación
-
16-10-2019 - |
Pregunta
Sé que esto es un error relativamente común, pero estoy trabajando en una aplicación que permite a los informes personalizados que se escriben utilizando vb.net o C # para scripting. El manejo de errores es muy pobre y no estoy lo suficientemente informado para agregar mi propia (si es que es posible).
Mi código simplemente recupera un valor que se almacena en un cuadro de texto en el informe formateado como apellido, nombre y trunca todos los caracteres después de la coma. Este valor Apellidos se coloca en un nuevo cuadro de texto en el informe. Aquí está mi código:
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
El error ocurre cuando uso lastNameCommaIndex para establecer el número de caracteres en mi subcadena. Si sustituyo con un número del informe se publica correctamente.
Solución
Es posible que desee utilizar string.split que hará que este sea mucho más fácil
por ejemplo.
If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then
lastName = lastNameFirstName.Split(",".ToCharArray())(0)
End If
Aquí se explica cómo escribir IsNullOrWriteSpace si usted no tiene .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