Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: ewald am 22.11.06 - 16:05:43
-
Hallo zusammen,
hab' über die Suche leider nix gefunden, darum meine Frage:
Wie kann ich denn ein RTF abfragen, ob was drin steht?
So wie ich meine anderen Text-Felder im Code abfrage
If doc.CustomerName(0) = "" Then
Messagebox "Kundennamen eingeben",MB_OK+MB_ICONSTOP, "Fehler"
uidoc.gotofield("CustomerName")
Continue = False
Exit Sub
End If
gehts irgendwie nicht.
Danke.
Grüße
-
Ich befürchte, da musst Du aber die Suche noch weiter quälen bzw. variantenreicher benutzen, denn das wurde hier schon oft diskutiert.
Die Problematik ist so tricky und facettenreich, dass wir das nicht in aller Breite erneut durchkauen können:
- Im Backend steht ein RTI erst nach dem Speichern zur Verfügung
- Es gibt keinen klaren Wert für die Grösse eines "leeren" RTIs (das ist nämlich niemals leer)
- Unterscheidung zwischen plain text, embedded images, OLE objects, attachments
usw. usf.
Bei Detailfragen beteilige ich mich gerne an einer Neuauflage der Diskussion.
Bernhard
-
Also nach längerem Suchen hab ich was gefunden aber so kompliziert will ich es doch gar nicht haben. Ich will das RTF nur abfragen, ob überhaupt was drinsteht. Was drinsteht ist egal, es darf nur nicht leer sein. Auf Attachment will ich nicht abfragen.
Ewald
-
Und genau das geht streng genommen nicht.
Bitte spezifiziere "es darf nur nicht leer sein"! Was ist für Dich "leer"? Das ist der casus knactus!
Bernhard
-
Leer ist, wenn ich ein neues Doc öffne und in dieses RTF nix reinmache, weder einen Buchstaben noch ein Attachment. Ich ignoriere das Feld einfach und speichere das Doc. Und dann bring' ich ne Fehlermeldung, dass das Feld nicht leer sein darf.
Ewald
-
Ähm, irgendwie widersprichst du dir selbst.
Einmal schreibst du:
Auf Attachment will ich nicht abfragen.
... und dann wieder:
...weder einen Buchstaben noch ein Attachment.
Ja was denn nun?
Das programmatische Handling von RTF-Feldern in Notes ist nicht gerade trivial.
Ich will das RTF nur abfragen, ob überhaupt was drinsteht. Was drinsteht ist egal, es darf nur nicht leer sein.
Es ist so kompliziert, weil du nicht einfach, wie bei Textfeldern mit
doc.Feldname(0) = ""
prüfen kannst ob das Feld leer ist.
Axel
-
Hallo zusammen,
bin mit meinem Problem leider immer noch nicht weitergekommen :-(, hab mich vielleicht auch etwas wiedrsprüchlich ausgedrück.
Ich hab ein RTF in meinem Dokument. Und wenn der User das Dokument speichern möchte, dann muss in diesem RTF mindestens ein Attachment drinsein, egal ob ein Word Doc oder ein PDF oder ein GIF, hauptsache eins. Wenn 2 oder mehr drin sind , dann ist es auch egal. Nur mindestens eins.
Vielleicht war das jetzt etwas genauer, sorry...
Grüsse Ewald
-
Schau dir in der Designer-Hilfe mal die Eigenschaft EmbeddedObjects aus der Klasse NotesRichtextItem an. Das sollte dir weiterhelfen.
Axel
PS Bemühe mal die Suche hier im Forum. Das Thema wurde schon einige Male behandelt.
-
Hat aber einen Haken, das NotesDocument muß existieren, d.h. das neue Dokument muß auf jeden Fall gespeichert worden sein. Erst dann steht auch das RTF zur Verfügung.
Eigentlich hatte Bernhard in seinem ersten Posting auch schon so gut wie alles zu dem Thema gesagt.
-
Ich bin mir jetzt nicht 100% sicher ob es auch bei ungespeicherten Dokumenten funktioniert, aber führe Dir auch die rtf.update Methode zu gemüte.
Wir hatten da nämlich mal was gestrickt ohne das Dokument speichern zu müssen, aber wie gesagt, ich weiß nicht mehr ob es ein neues Doc war.
Ach ja, das ganze haben wir dann wegen der grauen Haare die wir wegen RTF bekommen haben wieder verworfen.
-
Die HasEmbedded property kann helfen, ist allerdings ne Krücke. Da wir nämlich in allen RTF's im Doc geschaut. Und wenn halt noch ein nicht mandatory RTF im Doc ist, das zufällig ein Attachment enthält, passts schon nicht mehr...
-
Daher wurde ja auch die NotesRichTextItem.EmbeddedObjects Property empfohlen ... NotesDocument.HasEmbedded betrachtet ja tatsächlich das ganze Dokument.
Bernhard