Autor Thema: Problem mit mehrfachem Errorhandling  (Gelesen 1641 mal)

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Problem mit mehrfachem Errorhandling
« am: 25.01.08 - 08:37:47 »
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   

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Problem mit mehrfachem Errorhandling
« Antwort #1 am: 25.01.08 - 10:21:00 »
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

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?
« Letzte Änderung: 25.01.08 - 10:34:36 von Andrew Harder »
Andy

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Problem mit mehrfachem Errorhandling
« Antwort #2 am: 25.01.08 - 11:05:34 »
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

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Problem mit mehrfachem Errorhandling
« Antwort #3 am: 25.01.08 - 12:25:38 »
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
Andy

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz