Autor Thema: Löschen eines Abschnitts aus einem Richtextfeld  (Gelesen 2271 mal)

Offline Hugi23

  • Frischling
  • *
  • Beiträge: 30
  • Geschlecht: Männlich
  • Dietmar
Löschen eines Abschnitts aus einem Richtextfeld
« am: 13.03.11 - 16:42:59 »
Ich habe vor einiger Zeit hier die Möglichkeit eines einblendbaren Bereichs erfragt. Letztendlich ist es eine berechnete Teilmaske mit einem Abschnitt geworden. Mein "neues" Problem ist das Weiterleiten.
In dem Abschnitt werden interne Bearbeitungsvermerke eingetragen (das soll so sein - bitte das nicht in Frage stellen - Danke!).
Wird das Dokument weitergeleitet, wird natürlich auch der Abschnitt in das Richtextfeld mit übernommen. Da es sich aber um Internas handelt, wird der Abschnitt in der weiterzuleitenden E-Mail per Hand heraus gelöscht.
Gibt es eine Möglichkeit, in einem Richtext einen Abschnitt zu finden und zu löschen? Falls der Abschnitt dazu bestimmte Voraussetzungen erfüllen müsste (z.B. Anker darin oder davor und danach), bitte dies auch mitteilen. Na ja, schön wäre es, wenn man das per Lotusscript implementieren könnte.
Da das Weiterleiten ein Lotus Notes Standard ist, sehe ich zunächst keine Möglichkeit, das Original-Dokument vorab zu "behandeln". D.h. ich sehe eine Chance erst zum Postopen-Zeitpunkt, also im Frontend.
« Letzte Änderung: 15.03.11 - 13:26:59 von Hugi23 »
Dietmar
Es gibt nichts, was mit Lotus Notes nicht geht.
(nicht von mir, aber wahr)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Löschen eines Abschnitts aus einem Richtextfeld
« Antwort #1 am: 13.03.11 - 18:58:37 »
Zitat
Es gibt nichts, was mit Lotus Notes nicht geht.
Du kannst das Dokument per DXL exportieren und daraus beliebige Elemente entfernen., etc Ist aber alles andere als einfach.

Ggf. gehts auch viel einfacher mit  NotesRichtextNavigator.GetNextElement(RTELEM_TYPE_SECTION), müsstest dir mal ansehen


Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Hugi23

  • Frischling
  • *
  • Beiträge: 30
  • Geschlecht: Männlich
  • Dietmar
Re: Löschen eines Abschnitts aus einem Richtextfeld
« Antwort #2 am: 15.03.11 - 09:32:53 »
Sorry - die Überschrift meines Themas ist "unklug" gewählt und lässt darauf schließen, dass die Aktion bei einem bestehenden Dokument ausgeführt werden soll. Es geht aber nicht um ein permanentes Eliminieren, es geht ausschließlich um das Weiterleiten. Der Inhalt des Abschnitts soll unterbleiben, wenn das Dokument weitergeleitet wird.
Dennoch habe ich den Vorschlag von Roland Praml (thx 2 u) ausprobiert. Bedauerlicherweise hat bei einem neu angelegten Frontend-Dokument das Backend-Dokument noch nicht den Richtext-Container. Also ist per Lotusscript kein Zugriff auf RichtextItem, Richtextnavigator und somit auch nicht auf RichtextSection möglich.
Ein anderer Ansatz ist die berechnete Teilmaske, in der der Abschnitt enthalten ist. Über eine Konfiguration wird entschieden, ob in den Dokumenten die Teilmaske (mit dem Abschnitt) angezeigt werden soll oder nicht. Kann man unmittelbar vor dem Aufruf von @Command([ComposeWithReference]; ...) etwas "temporäres" an dem weiterzuleitenden Dokument machen, so dass die Teilmaske nicht mit erstellt und angezeigt wird?
Dabei ist zu beachten, dass es sich um ein- und dieselbe Maske "Memo" handelt. D. h. wenn die "Memo" geöffnet wird, soll die laut Konfiguration vorgegebene Teilmaske angezeigt werden. Wenn die "Memo" weitergeleitet wird, soll keine Teilmaske angezeigt werden.
Ich hoffe, ich konnte es halbwegs verständlich erklären.
Dietmar
Es gibt nichts, was mit Lotus Notes nicht geht.
(nicht von mir, aber wahr)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Löschen eines Abschnitts aus einem Richtextfeld
« Antwort #3 am: 15.03.11 - 10:54:26 »
Ich wüßte nicht, wie Du das mit der normalen Weiterleiten-Funktion hinbekommen kannst.

Du könntest eine eigene Weiterleiten-Schaltfläche bauen, die etwa folgendes ausführt:

Flag in die Ini setzen
Dokument schließen
Dokument öffnen (durch das Flag wird die berechnete Teilmaske nicht eingefügt)
Dokument weiterleiten
Dokument schließen
Flag aus der Ini entfernen
Dokument öffnen (Teilmaske wird wieder angezeigt)

Aus der Ansicht heraus ginge es genauso, nur, dass Du nicht die Dokumente schließen und öffnen musst.

Keine schöne Methode, sollte aber so gehen.

Offline Hugi23

  • Frischling
  • *
  • Beiträge: 30
  • Geschlecht: Männlich
  • Dietmar
Re: Löschen eines Abschnitts aus einem Richtextfeld
« Antwort #4 am: 15.03.11 - 13:26:31 »
Danke an Peter Klett.
Die "Reihenfolge-Problematik" ist wieder das Problem. Ich habe zunächst die einfache Variante "aus der Ansicht" implementiert.
  Flag setzen
  Weiterleiten aufrufen
  Flag zurück setzen
Die Aktion "Flag zurück setzen" funktioniert nicht. Ich hatte vermutet, dass es daran liegt, dass nach dem @Command ([ComposeWithReference]) die Steuerung / der Fokus auf das neu erstellte Dokument übergeht. Daraufhin habe ich das Zurücksetzen nicht in der aufgerufenen Aktion, sondern im Postopen des neu erstellten Dokuments implementiert. Aber irgendwie scheinen die INI-Variablen in einem Cache zu sein. Das erneute Anzeigen der Teilmaske klappte erst nach mehrmaligem Schließen und Öffnen der Datenbank. Das konnte ich den Nutzern nicht anbieten :-)

Die Realisierung wurde per Profildokument implementiert:
Vor dem Aufruf des Weiterleitens Setzen des Profilfeldes mittels Formelsprache.
Berechnen der Teilmaske erfolgt unter Berücksichtigung des Profilfeldes mittels Formelsprache.
Im Postopen des neu erstellten Dokuments wird geprüft, ob es sich um eine Weiterleiten handelt, d.h. ob das Profilfeld gesetzt ist. Wenn ja, wird es zurückgesetzt. Dies alles erfolgt per LotusScript.
Es funktioniert.
Peter Klett hatte vermutet, dass bei geöffnetem Dokument vor dem Weiterleiten dieses Dokument zunächst zu schließen und dann wieder zu öffnen ist, um in dem neuem Kontext (ohne Teilmaske) weitergeleitet zu werden. Erfreulicherweise ist das nicht erforderlich.
Dietmar
Es gibt nichts, was mit Lotus Notes nicht geht.
(nicht von mir, aber wahr)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz