Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: haeppchen am 23.02.05 - 12:07:11

Titel: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: haeppchen am 23.02.05 - 12:07:11
Hallo zusammen!

Ich möchte feststellen, ob ein Rich-Text-Feld leer ist, ohne das entsprechende Dokument vorher speichern zu müssen.
Ist dies überhaupt möglich (also ohne vorher zu speichern)?

Habe es schon probiert mit
   1) @Abstract

   2) Dim rtItem as NotesRichTextItem
       Set rtItem = doc.getFirstItem("Feldname")
       string = rtItem.getFormattedText

   3) Call uidoc.goToField("Feldname")
       Call uidoc.SelectAll
       Call uidoc.Copy

Ich erhalte aber jedesmal die Fehlermeldung "Object Variable not set".
Komm ich um das Speichern vor der Abfrage nicht herum?


Simon
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: Tode am 23.02.05 - 12:14:54
suchen (http://www.atnotes.de/index.php?topic=18015.msg109386#msg109386) hilft...
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: Thomas Schulte am 23.02.05 - 12:19:04
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   itemtext = source.FieldGetText("body")
   If itemtext = "" Then
      continue = False
      Exit Sub
   End If
End Sub
Gilt aber nur für text Einträge. Wenn da ein Attachment drin ist oder ein Bild dann muss das noch ergänzt werden
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: haeppchen am 23.02.05 - 13:24:59
@Thomas:

So was in der Art bräuchte ich!
Aber die Überprüfung, ob das Feld leer ist oder nicht soll nicht direkt vor dem Speichern erfolgen, sondern beim Betätigen eines Buttons (also bei Button_Click).
Ich will beim Betätigen dieses Buttons den Inhalt des Rich-Text-Feldes R1 in ein anderes Rich-Text-Feld R2 kopieren, wenn das Feld R1 gefüllt ist. Wenn das Feld R1 leer ist, soll nix passieren.

Das Kopieren des Inhaltes habe ich mit

   Call uidoc.goToField("Feld 1")
   Call uidoc.SelectAll
   Call uidoc.Copy
   Call uidoc.goToField("Feld 2")
   Call uidoc.SelectAll
   Call uidoc.Paste

realisiert.
Wenn jedoch das Feld R1 leer ist, erhalte ich eine Fehlermeldung in der Zeile Call uidoc.SelectAll (Document command is not available).
Ich müsste also irgendwie abfragen, ob das Rich-Text-Feld R1 leer ist oder nicht.

simon
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: Thomas Schulte am 23.02.05 - 13:46:28
Ohh bitte. Denk doch einfach selbst ein wenig nach.
Die Lösung steht doch da schon.
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: haeppchen am 23.02.05 - 14:43:55
Wo verbirgt sich denn die Lösung meines Problems?
Der Befehl

   Call uidoc.SelectAll

auf ein leers RT-Feld angewandt führt halt zu dem Fehler "Document command is not available".

Wenn der Fehler auftaucht, weiß ich, dass das Feld leer ist!
Aber wie kann ich diese Fehlermeldung umgehen?


Simon
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: Tode am 23.02.05 - 14:54:49
SUCHEN SUCHEN SUCHEN... (in meinem letzten post war ein LINK)
Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: Thomas Schulte am 23.02.05 - 14:57:43
Also gut, für ganz faule:
itemtext = uidoc.FieldGetText("Feld1")
   If itemtext <> "" Then
   Call uidoc.goToField("Feld 1")
   Call uidoc.SelectAll
   Call uidoc.Copy
   Call uidoc.goToField("Feld 2")
   Call uidoc.SelectAll
   Call uidoc.Paste
end if

Titel: Re: Abfrage: "Ist RT-Feld leer" ohne Save
Beitrag von: haeppchen am 23.02.05 - 15:11:07
Vielen Dank für eure Hilfe!

Der Hinweis mit uidoc.fieldGetText("") hat mir weitergeholfen.
Hatte ich bei deinem ersten Posting übersehen, Thomas.

Sorry!