Autor Thema: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld  (Gelesen 4057 mal)

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Hallo und guten Morgen zusammen.
Ich kämpfe mal wieder mit einem Problem, was ich in den vergangenen Jahren immer mal wieder hatte und für welches ich bis heute keine Lösung finden konnte. Vielleicht kann mir einer der hier anwesenden Programmierprofis auf die Sprünge helfen!?

Ich habe 1 Dokument welches ein RichText-Feld enthält. Dieses Feld befindet sich in der Maske  in einer Tabelle und diese Tabelle hat verschiedene Außen- und Innenrandeinstellungen.

Nun möchte ich dieses Feld via Skript in ein neues Dokument kopieren, welches ich via Skript erzeuge. Das RichText-Feld des neuen Dokumentes befindet sich aber nicht in einer Tabelle, sondern ist freigestellt direkt in der Maske vorhanden. Die Daten werden auch sauber in das neue Feld übernommen, dummerweise aber immer mit den Randeinstellungen des alten Feldes!? Irgendwie verrutscht der Inhalt im neuen Feld weil wohl offensichtlich das alte Feld in einer Tabelle stand und dadurch die Randeinstellungen andere sind als die des neuen Feldes, welches ja freigestellt ist.

Meine Frage ist, ob es irgendeine Möglichkeit gibt den Inhalt des alten Feldes zu übernehmen aber die Randeinstellungen des neuen Feldes, welche ja standardmäßig auf 2,54 cm steht, zu verwenden?

Ich habe es sowohl mit der Methode AppendRTItem als auch mit Copyitemtodocument probiert. Das Verhalten ist in beiden Fällen völlig identisch.

Zusätzlicher Hinweis: Die Routine muss im Backend ablaufen.
Herzlichen Dank im Voraus!
« Letzte Änderung: 28.09.16 - 12:26:56 von Alexander 28 »

Glombi

  • Gast
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #1 am: 23.09.16 - 10:31:53 »
Das lässt sich evtl. mit NotesRichTextParagraphStyle bewerkstelligen.

Andreas

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.276
  • Geschlecht: Männlich
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #2 am: 23.09.16 - 11:37:57 »
Das geht wie folgt:
1. Exportiere das Dokument als Notes-XML-Dokument, suche diese Stellen:
Code
<pardef id='2' leftmargin='1.7875in'/>
"1.7875" ist symbolisch, hier kann alles stehen und es definiert den Abstand.
2. Ersetze das mit:
Code
<pardef id='2' leftmargin='1in'/>
Das ist der Vorgababstand von 2,54 cm, die ID solltest du beibehalten.
3. Das modifizierte Notes-XML-Dokument wieder importieren.

Das funktioniert - ist nur etwas aufwendig.

Noch mehr Aufwand musst du betreiben, wenn bestimmte Abstände ihre Daseinsberechtigung haben ;)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #3 am: 26.09.16 - 07:57:36 »
@Andreas:
Mit NotesRichTextParagraphStyle habe ich es bereits mehrfach ohne Erfolg probiert. Die Steuerungsanweisungen gehen irgendwie immer verloren. Trotzdem Danke für den Tipp.

@Erik:
Damit habe ich noch nie gearbeitet. Hört sich für mich aber vielversprechend an. Werde ich die Tage mal probieren. Danke für den Hinweis.

Alles Gute für euch!
Alex

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #4 am: 28.09.16 - 10:49:21 »
Hi Erik. Also irgendwie habe ich jetzt ein Brett vorm Kopf. Den DXL Export des Dokumentes habe ich hinbekommen und den unveränderten Import auch.

Die Frage ist, wie komme ich jetzt an den eigentlichen Text bzw. wie führe ich die "Suchen-und-Ersetzen" Funktion aus? Ich habe es versucht mit stream.ReadText() aber sobald ich eine solche Zeile in das Skript einbaue, bekomme ich eine Fehlermeldung.

Vielleicht kannst du mir mit einem kurzen Codeschnipsel nochmal auf die Sprünge helfen.
Muss ich eigentlich zwingend eine Datei ins Filesystem exportieren und diese wieder importieren oder kann ich das auch irgendwie temporär machen ohne eine physikalische  Datei zu erzeugen?

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.276
  • Geschlecht: Männlich
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #5 am: 28.09.16 - 11:24:43 »
Sauber wäre es wenn man einen XML-Parser, wie z.B. NotesDOMParser zur Manipulation einsetzen würde.
In diesem Fall würde ich aber eine pragmatische, einfache Herangehensweise bevorzugen. Mit der Annahme das <pardef immer in einer Zeile steht - sollte der Aufwand nicht allzu groß sein.
Datei lokal abspeichern, dann zeilenweise durchlaufen, nach leftmargin=' und danach nach '/> suchen und Wert ersetzen.
Das Ergebnis schreibst du in eine neue Datei, welche dann importiert wird.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: Kopiertes RT Item übernimmt Steuerungen aus Quellfeld
« Antwort #6 am: 28.09.16 - 12:26:42 »
Klasse. Hat funktioniert. Vielen Dank für Deine Zeit!  :)
Alex

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz