Domino 9 und frühere Versionen > ND6: Entwicklung

berechnetes rich text-Feld

(1/2) > >>

wuschel:
Hallo,
der Umgang mit RT-Feldern ist ja offensichtlich in Notes nicht so ganz problemlos, wie sich das auch hier im Forum ablesen lässt. Leider habe ich beim Recherchieren keinen Lösungsansatz für mein Problem gefunden, daher schilder ich das hier einmal in der Hoffnung, jemand hat einen Tip oder einen Verweis auf einen helfenden Thread:
Ich habe in einer Maske für jedes Erfassungsfeld ein berechnetes Anzeigefeld. Je nach Status des Dokumentes werden entweder die Erfassungsfelder oder die Anzeigefelder angezeigt. Leider klappt das nicht für ein RT-Feld, das sowohl Text als auch Attachments enthalten soll (die Attachments für ich per Aktionsbutton und dahinterliegendem Formelsprachencode ein):
Das berechnete RT-Feld, das auf ein anderes RT-Feld verweist, bleibt immer leer, selbst wenn ich das Dokument speichere, schließe und wieder öffne.
Dann habe ich ein weiteres berechnetes RT-Feld eingefügt, das auf sich selbst verweist. Per LS-Aktion und folgendem Code versuche ich jetzt, dieses Feld zu befüllen. Klappt aber auch nicht (s.o.):
...
   Dim Beschreibung As Variant
   Dim Beschreibung_RTF_1 As Variant
   
   Set Beschreibung = doc.GetFirstItem( "Beschreibung" )
   Set Beschreibung_RTF_1 = doc.GetFirstItem( "Beschreibung_RTF" )
   
   Call Beschreibung_RTF_1.AppendRTItem(Beschreibung )
   Call doc.Save(False,True)

(Ein berechnetes Textfeld funktioniert übrigens grundsätzlich, aber damit gibt es an anderer Stelle Probleme)
Danke und Gruß Matthias

ghost:
Hallo Matthias,

RichTextfelder verhalten sich etwas anders als andere Felder. Im RT Feld können Hide-Whens für die einzelnen Abschnitte gespeichert werden, diese überschreiben dann die Voreinstellungen in der Maske. Daher eignen sich Hide-When Formeln nicht für das beschriebene Vorhaben - jedenfalls so weit ich es richtig verstanden habe. Auch wird die Formel eines berechneten Rich Text Feldes nur ein einziges Mal ausgeführt, also vergleichbar mit Computed When Composed.
Es ist zwar möglich das RT Feld per LS Code zu befüllen, allerdings muss das Dokument gespeichert, geschlossen und dann wieder geöffnet werden, damit die Änderung in den RT Feld sichtbar wird. Es gibt dazu zahlreiche Beschreibungen hier im Forum und auch im Redbook (Chapter 15):

http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246854.html?Open

Vielleicht sollte ein anderer Ansatz gewählt werden. Computed Subforms oder die Auslagerung der RT-Felder in Antwordokumente könnten evt. weiterhelfen.

Viele Grüße
ghost

koehlerbv:
Wie es der "Geist" schon beschrieben hat: Da RTFs ihr eigenes Hide-when-Handling haben (dafür sind sie ja auch rich text), kannst Du hide-whens für Maskenabschnitte, die RTFs enthalten, vergessen. Ist ja auch logisch so.
Mit berechneten Teilmasken, die dann wiederum ein berechnetes RTF enthalten (welches sich auf das rich text ITEM im Dokument bezieht), habe ich beste Erfahrungen. Und das Füllen eines weiteren rti's sparst Du Dir komplett.

Bernhard

wuschel:
Dank Euch für die Antworten, insbesondere den Hinweis auf das Redbook.
Ich werde das mal ausprobieren.
Den Code zum Befüllen eines RT-Feldes habe ich ja beigefügt, aber er funktioniert nicht. Habt Ihr da noch eine Idee?
Gruß Matthias

Untitled:
Versuche, "Variant" als Datentyp wann immer möglich zu verhindern.

"Beschreibung" und "Beschreibung_RTF_1" wären also besser als "NotesRichTextItem" deklariert.

Ausserdem wäre eine Prüfung, ob die RTFs überhaupt existieren nicht schlecht.

Grüsse
Moritz

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln