Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kadlec am 28.03.06 - 08:56:31

Titel: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Kadlec am 28.03.06 - 08:56:31
User können in einem Dok. Bemerkungen in ein RichText Feld eingeben.
Es können verschiedene User im Dok. als Bearbeiter eingetragen sein.
Entsprechend gibt es dann kontrollierte Abschnitte mit dem RichText Feld.
Wenn nun eine Bemerkung eingetragen wird, muss ein <Speichern> Button angeklickt werden der u.a. auch ein Datumsfeld setzt.
Nun befürchte ich, dass es User gibt, die ohne eine Bemerkung einzutragen, auf den Button klicken, damit würde das Datum gesetzt werden was nicht i.O. wäre.
Hat jemand eine Idee wie ich das abfangen kann?

Danke und Gruss
Boris
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: klaussal am 28.03.06 - 09:02:39
Wenn es tatsächlich nur Bemerkungen sind, warum dann kein normales Text-Feld ? Da könnte man vor dem Speichern mit @if abfragen, ob leer oder nicht.
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Kadlec am 28.03.06 - 09:05:10
Die Bemerkungen sollen formatierbar sein. Kursiv, unterstrichen oder was auch immer.
Es sollen auch DocLinks möglich sein.
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Axel am 28.03.06 - 09:59:29
Vor langer Zeit hatten wir hier schon mal was darüber, wie man prüft ob ein RTF-Feld leer ist.

Schau mal hier: http://atnotes.de/index.php?topic=10682.0

Da wird noch auf einen weiteren Thread verlinkt, der weitere Infos enthält.

Vielleicht kannst du was anfangen damit.


Axel
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Kadlec am 28.03.06 - 10:30:50
In der Formel die am Ende des Thread steht, wird das RT item auf eine grösse von 100 geprüft.
Ein leeres RT Feld in meinem Doc hat 200 byte, wenn ich nun wüsste das das immer 200 sind wäre es OK.
Gibt es diese Sicherheit??
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: koehlerbv am 28.03.06 - 10:36:45
Du willst ja auf eine Anmerkung im Feld prüfen, also auf eingegebenen Text. Daher brauchst Du keine Rücksicht auf die unsichere Grösse eines "leeren" RTIs zu nehmen, sondern mit
NotesRichTextItem.GetFormattedText
prüfen.

HTH,
Bernhard
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Axel am 28.03.06 - 10:45:23
Wenn's um reinen Text geht, geht's natürlich auch so. Aber ich habe es so verstanden, dass auch Doclinks möglich sein sollen. Da versagt die Methode allerdings.


Axel
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Axel am 28.03.06 - 10:50:41
In der Formel die am Ende des Thread steht, wird das RT item auf eine grösse von 100 geprüft.
Ein leeres RT Feld in meinem Doc hat 200 byte, wenn ich nun wüsste das das immer 200 sind wäre es OK.
Gibt es diese Sicherheit??

Diese Sicherheit gibt's anscheinend leider nicht. Ich hab's bei mir mal versucht und es sind 104 Byte (Version 6.5.3)

Axel
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: koehlerbv am 28.03.06 - 10:55:29
Wenn man noch auf alleinstehende DocLinks prüfen möchte, kann man dies mit NotesRichTextItem.EmbeddedObjects tun. Mit der Grösse alleine bekommt man eigentlich nichts sicheres zustande, vor allem, wenn Text und / oder DocLinks akzeptiert werden sollen.

Bernhard
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: Kadlec am 28.03.06 - 11:20:33
Also mit Sicherheit kann ich nicht sagen was alles ins Feld kommt.
Rein theor. die ganze Palette:
Bild==> evt.
Anhang==> evt.
Tabelle==> evt.
DocLink==> ganz sicher (dafür habe ich extra eine Aktion)
Text==> auch sicher

Also müsste ich einen Check auf alles machen.
Titel: Re: Wie kann ich @Command([FileSave]) kontrollieren?
Beitrag von: koehlerbv am 28.03.06 - 11:34:42
Sooo kompliziert muss es ja nicht werden:

Bild - Hier kannst Du schon gut über die Grösse arbeiten. Ein Bild mit 3 Byte kann man ja wohl als ungülrig ablehnen  ;D
Anhang - über die EmbeddedObjects greifbar
Tabelle - da da ja bestimmt Text drin steht: GetFormattedText. Leere Tabelle: Gemecker.
DocLink - über die EmbeddedObjects greifbar
Text - GetFormattedText

Und dann gehst Du vom einfachsten zum "schwierigsten" Fall:
- GetFormattedText
- EmbeddedObjects
- ValueLength > 1000 oder wie Du es definierst

Bernhard