Autor Thema: berechnetes rich text-Feld  (Gelesen 2428 mal)

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
berechnetes rich text-Feld
« am: 12.06.06 - 16:26:22 »
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

Offline ghost

  • Aktives Mitglied
  • ***
  • Beiträge: 174
  • Geschlecht: Männlich
  • Notes ist gut!
Re: berechnetes rich text-Feld
« Antwort #1 am: 12.06.06 - 17:05:22 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: berechnetes rich text-Feld
« Antwort #2 am: 12.06.06 - 18:06:56 »
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

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: berechnetes rich text-Feld
« Antwort #3 am: 13.06.06 - 07:58:37 »
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

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: berechnetes rich text-Feld
« Antwort #4 am: 13.06.06 - 08:39:13 »
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

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: berechnetes rich text-Feld
« Antwort #5 am: 13.06.06 - 09:17:18 »
Hallo,
habe den Code gem. Moritz überarbeitet:
...   Dim Beschreibung As notesrichtextitem
   Dim Beschreibung_RTF_1 As notesrichtextitem
   
   Set Beschreibung = doc.GetFirstItem( "Beschreibung" )
   Set Beschreibung_RTF_1 = doc.GetFirstItem( "Beschreibung_RTF_1" )
   
   If ( Beschreibung.Type = RICHTEXT And Beschreibung_RTF_1.Type = RICHTEXT ) Then
      Call Beschreibung_RTF_1.AppendRTItem(Beschreibung )
      Msgbox "Append"
   End If
   
   Call doc.Save(False,True)
...

Die Msgbox kommt, aber das RT-Feld ist nach Schließen und erneutem Öffnen weiterhin nicht sichtbar gefüllt.
--
Mit der berechneten Teilmaske klappt das jetzt gut, allerdings gilt ja auch hier die Einschränkung, dass das berechnete Feld in der Teilmaske nur einmal berechnet wird. Sollte das Bearbeitungs-RT-Feld jetzt noch geändert werden, behält das berechnete RT-Feld in der Teilmaske den alten Inhalt. Habt Ihr hier auch noch eine Idee?

Außerdem habe ich gerade festgestellt, dass bei Zeilenumbrüchen der nachfolgende Text nicht mit in das berechnete RT-Feld übertragen werden. Hat hier jemand eine Lösung?

Gruß Matthias
« Letzte Änderung: 13.06.06 - 09:19:45 von wuschel »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: berechnetes rich text-Feld
« Antwort #6 am: 13.06.06 - 10:01:32 »
Mit der berechneten Teilmaske klappt das jetzt gut, allerdings gilt ja auch hier die Einschränkung, dass das berechnete Feld in der Teilmaske nur einmal berechnet wird. Sollte das Bearbeitungs-RT-Feld jetzt noch geändert werden, behält das berechnete RT-Feld in der Teilmaske den alten Inhalt.

Ich befürchte, Du hast mein Posting nicht richtig geschrieben. In meiner Lösung gibt es kein zweites Item, was noch einmal berechnet werden müsste - es gibt nur ein einziges. Es gibt lediglich zwei Felder (in je einer Teilmaske).

Bernhard

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: berechnetes rich text-Feld
« Antwort #7 am: 13.06.06 - 10:11:10 »
@koehlerbv:ich hatte tatsächlich deine Lösung nicht verstanden, nämlich dass es sich hierbei um DASSELBE Feld nur mit unterschiedlichen Attributen in den jeweiligen Teilmasken handelt.
Danke und Gruß
Matthias

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz