Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Brocki am 30.03.11 - 12:10:24

Titel: Illegal function call mit der Funktion "Len"
Beitrag von: Brocki am 30.03.11 - 12:10:24
Hallo Zusammen,

ich habe eine kleine Unterroutine geschrieben mit der ich auf den gefüllten Inhalt von Feldern prüfe:

Sub transferValues(sourceDoc As NotesDocument, sourceFieldName As String, newDoc As NotesDocument, destFieldName As String)
   If Len( sourceDoc.Getitemvalue(sourceFieldName)(0) ) > 0 Then
       Call newDoc.ReplaceItemValue(destFieldName, sourceDoc.GetItemValue(sourceFieldName)(0))
   End If
End Sub

Das Feld bei dem die Fehlermeldung erscheint ist vom Typ "768" also Number oder NumberList.
In der Hilfe steht, das bei "numberExp" die Bytegröße zurückgegeben wird, wenn es gefüllt ist.
Aber wie gesagt es knallt mit der genannten Fehlermeldung und das verstehe ich nicht.

Hat dies jemand schon mal gehabt? Welche Erfahrungen habt Ihr mit dieser Funktion erlebt?

Grüße Stefan
Titel: Re: Illegal function call mit der Funktion "Len"
Beitrag von: ascabg am 30.03.11 - 12:29:16
Hallo,

Soweit ich mich erinnere, bezieht sich dieses aber darauf, wenn mit Len eine numerische Variable abgefragt wird.

Dim lngTest As Long

lngTest = 1900
Len(lngTest)


Andreas
Titel: Re: Illegal function call mit der Funktion "Len"
Beitrag von: Brocki am 30.03.11 - 12:59:48
Hallo,

hier mein Workaround:

Sub transferValues(sourceDoc As NotesDocument, sourceFieldName As String, newDoc As NotesDocument, destFieldName As String)
    Dim item As NotesItem
    Set item = sourceDoc.GetFirstItem(sourceFieldName)
    
    If Not (item Is Nothing) Then
        If Len( item.Text ) > 0 Then
            Call newDoc.ReplaceItemValue(destFieldName, sourceDoc.GetItemValue(sourceFieldName))
        End If
    End If    
End Sub

Evtl. geht es auch eleganter.
Für meine Zecke geht es.

Grüße Stefan