Domino 9 und frühere Versionen > ND6: Entwicklung
Problem mit mehrfachem Errorhandling
(1/1)
geissbock:
Hallo, ich stümper hier grad an einem Skript rum, das testen soll, ob in 2 Richtextfeldern was enthalten ist, um dann einen Status in einem anderen Dokument zu ändern. Solang das ein Feld betrifft funktioniert das auch, aber bei 2 Feldern wirft er mir beim 2. Feld immer einen Type mismatch error, obwohl ich doch den gerade im Errorhandling abfange. Warum?
Hier der Auszug aus dem Skript:
Set rtitem2 = curdoc.GetFirstItem( "fdMaterialRT" )
If Not rtItem2 Is Nothing Then
If (rtitem2.Type = RICHTEXT ) Then
On Error 13 Goto LabNoEmbedd2
Forall p In rtitem2.EmbeddedObjects
If ( p.Type = EMBED_ATTACHMENT ) Then
iUsed2 = 1 '* RT ist belegt
Exit Forall
End If
End Forall
LabNoEmbedd2:
Err = 0
End If
If iUsed2 = 0 Then '* Nur prüfen, wenn keine Anhänge
pText2 = rtitem2.GetFormattedText (False, 0)
If Trim (pText2) <> "" Then
iUsed2 = 2
End If
End If
End If
Select Case iUsed2
Case 0 'Kein Konferenzmaterial enthalten
strmaterial = "no"
Case 1
strmaterial = "yes"
Case 2
strmaterial = "yes"
End Select
'#################################################################
'Check auf enthaltenten Tagungsbericht und Bewertung:
Set rtitem = curdoc.GetFirstItem( "fdAnhangRT" )
If Not rtitem Is Nothing Then
If (rtitem.Type = RICHTEXT ) Then
On Error 13 Goto LabNoEmbedd
Forall x In rtitem.EmbeddedObjects 'Hier kommt der Fehler
If ( x.Type = EMBED_ATTACHMENT ) Then
iUsed = 1 '* RT ist belegt
Exit Forall
End If
End Forall
LabNoEmbedd:
Danke & Gruß
Klaus
Andrew Harder:
Hallo Klaus,
auf den ersten Blick würde ich vermuten, das etwas in das Feld hineingehängt wurde, aber nicht gespeichert.
Teste doch bitte einmal, ob überhaupt etwas im Feld als Embedded Object vorliegt.
Falls Du gerade keine eigene Function dazu gleich greifbar hast, hier einmal eine von mir:
--- Code: ---Function HasEmbedded( doc As NotesDocument, sItemName As String ) As Boolean
' ----------------------------------------
' Debug
' ----------------------------------------
On Error Goto ErrorHandler
' ----------------------------------------
' Declare
' ----------------------------------------
Dim bReturnValue As Boolean
Dim rtitem As Variant
Dim oEmbedded As Variant
' ----------------------------------------
' Initialize
' ----------------------------------------
Let bReturnValue = False
' ----------------------------------------
' Start
' ----------------------------------------
If doc.HasItem( sItemName ) Then
Set rtitem = doc.GetFirstItem( sItemName )
If Not rtitem Is Nothing Then
If ( rtitem.Type = RICHTEXT ) Then
oEmbedded = rtitem.EmbeddedObjects
If Isarray( oEmbedded ) Then
bReturnValue = True
End If
End If
End If
End If
end_F:
' ----------------------------------------
' End
' ----------------------------------------
HasEmbedded = bReturnValue
Exit Function
errorHandler:
' ----------------------------------------
' ErrorHandler
' ----------------------------------------
Print "Error '" & Error$ & "' (" & Str(Err) & " ) in line" & Str(Erl) & " at: " & Cstr( Getthreadinfo( 1 ) )
bReturnValue = False
Resume end_F
End Function
--- Ende Code ---
Selbst wenn Du Dir gerade sicher bist:
Prüfe damit bitte einmal, ob überhaupt ein EmbeddedObject im Feld vorhanden ist und sag hier Bescheid.
Ich weiss es löst nicht Dein Problem mit dem ErrorHandling an sich, wohl würde es Dein Script zum laufen bringen und das ist Dein Ziel?
geissbock:
Hallo,
vielen Dank für die Antwort. Das Script sollte ja genau das abfragen, ob in dem Richtextfeld was drin steht, aber dabie hat mir dein Code ja auch geholfen und so funktioniert es. Dann brauch ich das mit dem doppelte Errohhandler gar nicht sondern prüfe auf Deine Weise.
Manchmal versteift man sich auf die Lösung eines bestimmten Problems so, dass man den Wald vor Bäumen und somit die einfacherer Variante nicht sieht.
Also noch mal danke dafür und Schönes Wochenende
Klaus
Andrew Harder:
Hallo Klaus,
freut mich das es jetzt klappt. Naja und das mit dem Wald vor lauter Bäume... da müsste ich mir selbst mal eine Strichliste für mich machen, die wäre sicherlich lang ;)
Schönes Wochenende
Andy
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln