T1Failed :="Bitte einen Text ins RT-Feld eingeben";
@If(
@Length ( @Text(RT-Feld) ) < 3 ; T1Failed;
"")Notes 8.5 Designer Hilfe:
Achtung Rich text fields are not part of a document until saved. If you want @Abstract to work on additions and changes to the current document, you must first save and then recalculate the document.
"Irgendein Text" ist allerdings schon mal eine Ansage.
Der einfachste Weg ist hier - kurz beschrieben - folgender:
In ein persönliches (!) ProfileDocument überträgst Du den aktuellen Inhalt des RTI via Frontend (!) vom aktuellen Dokument. Dieses ProfileDocument muss dann gespeichert werden (was nichts schadet - das wird ja immer wieder recycelt ;-) Dort kannst Du es dann auswerten (NotesRichtTextItem.Text or whatever - da kannst Du auch auf Attachments, embedded objects, Bilder usw. testen)
...In ein persönliches (!) ProfileDocument überträgst Du den aktuellen Inhalt des RTI via Frontend (!) vom aktuellen Dokument.
Kurzfassung: Mit LotusScript geht was, mit @Functions - no way.
Warum das mit dem gemeinsamen ProfileDocument Dir wenig Freude machen wird, wirst Du nach einiger Laufzeit schon noch ergründen
Du hast auch meine Frage "Was verstehst Du unter 'leer'" nicht beantwortet
Dafür, dass Du nur auf vier Zeichen überprüfen willst, hättest Du gar nicht so ein Gedöns veranstalten müssen.
Die nächsten User, die ein ganzes Essay als Attachment zur Erläuterung in Dein RTF gehangen hat oder die, die sich sagen "Ein Bild sagt mehr als 1000 Worte", werden Dir wegen Deiner "Fehler"meldung sehr dankbar sein ;D
Bernhard (durchaus amüsiert)
Kannst Du deine Aussage begründen?
Der einfachste Weg ist hier - kurz beschrieben - folgender:So kompliziert muss man es meiner Meinung nach nicht machen.
In ein persönliches (!) ProfileDocument überträgst Du den aktuellen Inhalt des RTI via Frontend (!) vom aktuellen Dokument. Dieses ProfileDocument muss dann gespeichert werden (was nichts schadet - das wird ja immer wieder recycelt ;-) Dort kannst Du es dann auswerten (NotesRichtTextItem.Text or whatever - da kannst Du auch auf Attachments, embedded objects, Bilder usw. testen)
call Source.refresh(true) ' holt den Richtext ins Backend
if Source.document.body.values = "" then ' leer im Sinne von "kein Text"
continue = false
msgbox "Bitte füllen Sie das Feld aus"
end if
Kannst Du verstehen, dass ich dazu schlicht keine Lust mehr habe?
Überarbeite mal Deine Website - bevor der Rechtsanwalt eines Abmahngeilen dafür sorgt oder Dich zumindest wochenlang beschäftigt.
So kompliziert muss man es meiner Meinung nach nicht machen.
im QuerySave müsste es folgender code "tun"
call Source.refresh(true) ' holt den Richtext ins Backend
if Source.document.body.values = "" then ' leer im Sinne von "kein Text"
continue = false
msgbox "Bitte füllen Sie das Feld aus"
end if
So kompliziert muss man es meiner Meinung nach nicht machen.
im QuerySave müsste es folgender code "tun"
call Source.refresh(true) ' holt den Richtext ins Backend
if Source.document.body.values = "" then ' leer im Sinne von "kein Text"
continue = false
msgbox "Bitte füllen Sie das Feld aus"
end if
Noch eine leere Deklaration ohne jegliche Begründung.Soll ich da jetzt die Adresse angeben und ansagen, was fehlt (worauf einige Abmahner so scharf sind)? Wirklich? Ich bin nicht fies.
Wirklich super
So kompliziert muss man es meiner Meinung nach nicht machen.
im QuerySave müsste es folgender code "tun"
call Source.refresh(true) ' holt den Richtext ins Backend
if Source.document.body.values = "" then ' leer im Sinne von "kein Text"
continue = false
msgbox "Bitte füllen Sie das Feld aus"
end if
Roland, das tut es bekanntermassen nicht (zuverlässig). Ausserdem bist Du da wieder nur bei Text als zu überprüfender "Masse".
Bernhard
Soll ich da jetzt die Adresse angeben und ansagen, was fehlt (worauf einige Abmahner so scharf sind)? Wirklich?
Lies mal Deine letzten Threads durch. Es lief zum Schluss immer auf zeig doch mal Deinen Code" hinaus.
Ich habe jetzt wirklich schlicht keine Lust mehr, auf sowas zu antworten.
Ein "Nobody is perfect but I am pretty close" traue ich mir nicht zu ...
@leo ...
So kompliziert muss man es meiner Meinung nach nicht machen.
im QuerySave müsste es folgender code "tun"
call Source.refresh(true) ' holt den Richtext ins Backend
if Source.document.body.values = "" then ' leer im Sinne von "kein Text"
continue = false
msgbox "Bitte füllen Sie das Feld aus"
end if
Roland, das tut es bekanntermassen nicht (zuverlässig). Ausserdem bist Du da wieder nur bei Text als zu überprüfender "Masse".
Bernhard
Hmm, deine Argumentation klingt zwar logisch, dennoch konnten wir noch keine annormalitäten feststellen. (oder es ist niemand aufgefallen)
Hmm, deine Argumentation klingt zwar logisch, dennoch konnten wir noch keine annormalitäten feststellen. (oder es ist niemand aufgefallen)Ich hatte manchmal Probleme mit Attachments, die zwar als Icon im wieder im FrontEnd geöffneten Dokument eingebettet waren, aber kein wirklicher Anhang waren.
Bringt es denn etwas, wenn ich rtitem.update aufrufe (das geschieht ja eigentlich im Backend)
Keine Ahnung, was der NotesClient da so alles im Hintergrund/asynchron veranstaltet, um aus dem im FrontEnd gerenderten RichTextFeld dann den CD-Record für das RichTextItem zusammenzubasteln. Das sind jedenfalls keine von außen zu beeinflussenden Sachen.
Was wäre denn z.B. eine asynchrone Aktion, bei der Probleme zu erwarten sind?
Es geht um den konkreten Fall, dass im querySave "uidoc.refresh(true)" aufgerufen wird, damit ich im Backend GENAU das RTitem habe, welches anschließend auf der Platte landet.
Gruß
Roland
Erst im POSTSAVE-Event ...
@Sam: Leo und ich haben hier etwas überhitzig diskutiert.
Du wirst uns hier schon wieder im flachsenden Gleichklang erleben. Stimmts, Leo?