Autor Thema: Richtext Doklink ergänzen  (Gelesen 2459 mal)

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Richtext Doklink ergänzen
« am: 22.06.10 - 12:29:33 »
Hallo,

an folgendem Problem habe ich mich verbissen und komme nicht weiter. Vielleicht hat von euch jemanden einen Hinweis den ich zur Lösung nachgehen kann.

Ich habe ein Dokument mit einem Richtextfeld. In dem RTItem befindet sich Text und ein Doklink. Jetzt soll per Agent ein weiterer Doklink an das RTItem angehangen werden. Der Doklink wird auch angefügt, jedoch wird aus dem schon vorhandenen Doklink ein Ansichtslink! Zur Erläuterung habe ich hier die Grafik eingefügt.


Mit folgendem Code ergänze ich den Doklink unter Notes 7.0.3:
...
'Frontend schliessen
  Call uidoc.close()
  Set rtitem = doc.GetFirstItem("Body")
'Doklink anhängen
  Call rtitem.AddNewline(1)
  Call rtitem.appenddoclink(Fassdoc, Fassdaten(i-1).Anhang +| wurde ins Anhangsarchiv geschoben.|)
'Dokument speichern
  Call doc.Save(True, True)
'Dokument schliessen und wieder neu öffnen
  Call ws.EditDocument(False, doc)
...

Da habe ich echt ein Brett vor dem Kopf und kann mir das Verhalten von Notes nicht erklären. Neustart und Cache löschen brachte leider keine Verbesserung. Danke für jeden Tipp der mir helfen kann.

Bernd
« Letzte Änderung: 23.06.10 - 10:16:17 von Hatschi »

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Richtext Doklink ergänzen
« Antwort #1 am: 22.06.10 - 17:24:05 »
Ohne vollständigen Code kann man da gar nichts sagen. Der Code den du gezeigt hast kann gar nicht funktionieren, da doc nie gesetzt wird. Sollte eigentlich einen Abbruchfehler bringen.

Am einfachsten du baust das mal in einer Testdatenbank nach und schaust, ob es dort funktioniert. Dann kannst du auch problemlos den ganzen Code posten. Der Fehler wird nämlich sicher in dem Codeteil sein, den du nicht zeigst.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Richtext Doklink ergänzen
« Antwort #2 am: 22.06.10 - 17:46:44 »
1. Ralf hat wahrscheinlich recht
2. ich vermisse ein rtitem.compact() oder rtitem.update() vor dem Save
3. Gibt es in deinem Doc ein Feld namens $Links? In diesem verwaltet Notes die Links und wenn man in den RT-Items "rumpfuscht" kann es passieren, dass die Links nicht mehr da hin führen wo sie sollen.

Gruß
Roland
Roland Praml

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

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Richtext Doklink ergänzen
« Antwort #3 am: 23.06.10 - 08:10:34 »
Guten Morgen Ralf,

ich habe nur den Codeteil gepostet, indem ich auch das Dokument verändere. Deshalb habe ich den Codeschnipsel in ... gesetzt um damit anzudeuten das es eben nur ein Teil ist.
Das Dokument hole ich mir aus dem aktuellen Workspace
   Set ws=New notesuiworkspace
   Set uidoc=ws.CurrentDocument
   Set doc=uidoc.Document
An eine Testdatenbank habe ich noch nicht gedacht.

Guten Morgen Roland,
rtitem.compact() und update() kenne ich noch nicht. Das werde ich gleich  nachlesen was es damit auf sich hat und es eventuell einbauen.
Ein Feld $Links gibt es nicht.

Was mir aber noch aufgefallen ist, die Dokumenteigenschaften zeigen mir nur ein Item Body an, während die Lite Version von ScanEz mir zwei Felder anzeigt (siehe Screenshot). Das kann ich aber nicht deuten.

Ich vermute das es vielleicht an diesem einen Dokument liegt und werde noch ein wenig testen.

Wenn euch noch etwas einfällt, dann bitte her damit.

Bernd

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Richtext Doklink ergänzen
« Antwort #4 am: 23.06.10 - 09:29:52 »
Hm ich würde mal probieren  genau den von dir jetzt geposteten codeteil zu ändern. Du holst das doc von einem uidoc, dass du nachher schliesst. Ich würde das doc mal nach dem schliessen über die unid neu holen eventuell sind dann deine Probleme schon behoben.
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Richtext Doklink ergänzen
« Antwort #5 am: 23.06.10 - 09:43:25 »
> Was mir aber noch aufgefallen ist, die Dokumenteigenschaften zeigen mir nur ein
> Item Body an, während die Lite Version von ScanEz mir zwei Felder anzeigt (siehe
> Screenshot). Das kann ich aber nicht deuten.

Wer legt denn das Body-Item an, vermutlich wird es 2x angelegt (einmal im Backend und einmal im UI)

Evtl ist irgendwo noch folgender Code sinnvoll:
Set rtitem = doc.GetFirstItem("Body")
if rtitem is nothing then set rtItem = new NotesRichtextitem(doc)

Der Tipp von Ralf ist sicher auch nicht verkehrt. RT-Felder verhalten sich "anders" als andere Felder
Bedenke auch, dass du so wie du das jetzt machst, alle Eingaben im RT-Feld verlieren wirst, da das Backenddok nicht (wie bei anderen Feldern) mit den UI-Inhalten upgedated wird.

Falls du es dir zutraust, eine undokumentierte Funktion zu verwenden, könnten dir folgende Links weiterhelfen. Insb. der zweite:
http://searchdomino.techtarget.com/tip/1,289483,sid4_gci844676,00.html
http://www.qtzar.com/blogs/qtzar.nsf/D6Plinks/DSLH-7NRK85

Gruß
Roland

Roland Praml

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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Richtext Doklink ergänzen
« Antwort #6 am: 23.06.10 - 09:46:12 »
Ich meine, wir hatten auch mal so ein Phänomen. Ist Dein Body-Feld in der Maske bearbeitbar oder berechnet? Falls es berechnet ist, stelle es mal testweise auf bearbeitbar um und probiere, ob sich etwas ändert.

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Richtext Doklink ergänzen
« Antwort #7 am: 23.06.10 - 10:15:00 »
An alle:
Vielen Dank für eure Unterstützung. Ihr seid echt super bei der Ferndiagnose.

An Ralf:
Ich habe den Code geändert, und das Doc neu über die Unid geholt. Das brachte aber keine Verbesserung.

An Roland:
Danke für die Links, das muß ich mir ansehen. Ist jetzt aber nicht mehr nötig.

An Peter:
Das wars!
Das Feld ist auf der Maske berechnet. Ändere ich auf der Maske den berechneten Body in ein bearbeitbares Feld, entferne das Maskenfeld Saveoptions und lösche dann noch in dem Problemdokument das Feld Saveoptions, dann funktioniert es wie gewünscht.
Tausend Dank für den Hinweis!

Was ich aber nicht verstehe, was hat die Maske mit dem Backend zu tun? Konntest du das bei deinem Phänomen klären?

Bernd

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Richtext Doklink ergänzen
« Antwort #8 am: 23.06.10 - 11:27:13 »
nein, wir haben da nicht weiter geforscht. Unsere Lösung bestand darin, das Body-Feld bearbeitbar zu machen und einen zugriffsgesteuerten Abschnitt darüberzulegen, so dass niemand das Richtextfeld ändern konnte (glaube ich jedenfalls).
« Letzte Änderung: 23.06.10 - 11:33:10 von Peter Klett »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz