Question

Je sais que cela est une erreur relativement commun, mais je travaille dans une application qui permet des rapports personnalisés à écrire en utilisant vb.net ou C # pour les scripts. La gestion des erreurs est très pauvre et je ne suis pas assez d'ajouter mon knowledgable propre (s'il est même possible).

Mon code récupère simplement une valeur qui est stockée dans une zone de texte sur le rapport formaté comme nom, prénom et tronque tous les caractères après la virgule. Cette valeur LastName est placé dans une nouvelle zone de texte sur le rapport. Voici mon code:

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'erreur se produit lorsque j'utilise lastNameCommaIndex pour définir le nombre de caractères dans mon sous-chaîne. Si je le remplace par un numéro du rapport est publié correctement.

Était-ce utile?

La solution

Vous pouvez utiliser string.split il fera ce beaucoup plus facile

par exemple.

   If Not String.IsNullOrWhiteSpace(lastNameFirstName) Then

        lastName = lastNameFirstName.Split(",".ToCharArray())(0)

    End If

Voici comment vous écrivez IsNullOrWriteSpace si vous n'avez pas .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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top