Autor Thema: Berechnetes RTF: Anhänge funktionieren nicht, Formatierung ist nicht ok  (Gelesen 4802 mal)

Mitch

  • Gast
Hallo und ein frohes, neues Jar zusammen.

Ich habe eine "Portal"-Maske für eine Anwendung. Diese Maske wird beim Öffnen der DB gezeigt und ist Ausgangpunkt für die weitere Bearbeitung. Es gibt eingebettete Views, Buttons, Outlines und so weiter die dem User aktuelle Aufgaben und mögliche Aktionen etc anzeigen.

Diese Maske ist mittels SaveOptions = "0" nicht speicherbar gemacht, schließlich sollen ja keine Dokumente damit erstellt werden.

Das funktioniert auch wunderbar.

Jetzt möchte ich dieser Maske ein (berechnetes) Richtextfeld spendieren. Das Feld soll sich seinen Wert aus einem Konfigurationsdokument holen. Hintergrund ist, dass der Admin der Anwendung so zum Beispiel Worddokumente oder Grafiken bequem allen Usern zur Verfügung stellen kann.

Die Formel des Feldes ist:
@DbLookup("":""; "":""; "PortalDefinitions"; PortalType; @ThisName; [FailSilent])

Das klappt auch schon "ein bischen": Der Text des (gleichnamigen) Feldes wird ausgelesen, importierte (!) Bilder werden angezeigt.

Was nicht funktioniert sind zwei Dinge:

  • Kritisch - Angehangene Dateien: Es wird zwar das Symbol der Datei angezeigt (so wie es immer bei angehangenen Dateien aussieht), aber wenn ich diese öffnen will, kommt eine Fehlermeldung: "Element des Dokuments nicht gefunden". Im "Anhang öffnen"-Fenster (das was kommt wenn man den Anhang doppelklickt) stimmt der Dateiname, aber nicht die Länge (immer 4 Byte). Die Werte von "Geändert" und "Kodierung" sind leer.
  • Nebensächlich - Formatierung des Textes bezüglich der Schriftart: Größe und Farbe klappen super, nur wenn ich die Schriftart weg von den "Defaults" (Default sans-serif, etc) ändere (z.B. auf Arial), wird die Default-Serifen-Schrift verwendet.

Leider finde ich keine Lösung hierfür, die meisten Workarounds mit RTFs haben scheinbar was mit im Hintergrund kopierten Items und speichern des Dokumentes zu tun, was ich hier ja nicht machen kann.

Kann mir da jemand weiterhelfen? Oder kennt jemand einen besseren Weg?

Vielen Dank schonmal...

Gruß,

Mitch

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
hi,

damit hast du ein großes Problem angesprochen, denn es ist einmal so der Anhang steht nicht orginal im Rich Text Feld (dort ist quasi nur der Verweis). Der eigentliche Anhang ist im $File Feld des Dokumentes.

Was du tun musst ist dich per Lotus Script auf das Rich Text Feld beziehen und dort den Inhalt auslesen und komplett in dein Feld integrieren. Ein leider nicht ganz leichter Vorgang.
Evtl. wäre zu überlegen ob es nicht eine andere möglichkeit gäbe solche Informationen anzuzeigen. Evtl. ein Dokument in einem Embeddet Editor Element hereinziehen (ist nur so eine Idee, habe das jetzt nicht evaluiert). Oder aber das was du aufrufst ist eben ein "Startdokument" und du baust den Rest eben mittels der verwendeten Maske auf, so wie du es bisher machst.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Mitch

  • Gast
Danke für den Hinweis.

Ich werde das mal versuchen. Vielleicht kann ich ja auch einfach das $File Feld mit übernehmen...

Gruß,

Mitch

Mitch

  • Gast
Nochmal danke, das Problem mit den Anhängen ist gelöst. Und zwar so:

Die Inhalte der RTFs auf der nicht speicherbaren Portalmaske wie oben angegeben via Lookup aus dem Definitionsdokument auslesen. Gleichzeitig noch im Postopen des Portales mit LS sowohl das $FILE-Feld als auch die "originalen" RTFs (denn $FILE verschwindet wenn das zugehörige RTF nicht mehr da ist) in die Maske kopieren (ich habe es mit dem Umweg "CopyAllItems in ein Dummydokument, löschen nicht benötigter Items, CopyAllItems in die Portalmaske" gemacht).

Das Problem mit der falschen Formatierung der Schrift löst sich damit leider nicht. Ich habe mal versucht $Fonts (und MIME_Version) auch mit zu kopieren, aber das hat leider nicht geklappt. Aber damit kann ich leben... :)

Gruß,

Mitch

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Die Inhalte der RTFs auf der nicht speicherbaren Portalmaske wie oben angegeben via Lookup aus dem Definitionsdokument auslesen. Gleichzeitig noch im Postopen des Portales mit LS sowohl das $FILE-Feld als auch die "originalen" RTFs (denn $FILE verschwindet wenn das zugehörige RTF nicht mehr da ist) in die Maske kopieren (ich habe es mit dem Umweg "CopyAllItems in ein Dummydokument, löschen nicht benötigter Items, CopyAllItems in die Portalmaske" gemacht).

AFAIK reicht es nur das RTF zu kopieren. File Attachments werden dann automatisch kopiert. Am Besten machst du das RTF in der Maske Berechnet auf @thisValue und im QueryOpenkannst du dann mit

   Dim item As NotesItem
   Set item = doc.GetFirstItem("Body")
   If Not item Is Nothing Then Call item.CopyItemToDocument(Source.Document, "Body")

das RT-Item kopieren.

Ansonsten kann man $FILE-Items leider nicht direkt kopieren (musste dies auch schon mal über Copyallitems machen  ::)).

Kannst du nicht evtl gleich das "Definitionsdokument" öffnen. Ich hab dies mal so gemacht, in dem ich im Frameset auf URL/Computed gestellt habe und folgende Formel angegeben habe

ID := @DbLookup("":"ReCache";"";"(lookup.userPortal)";@UserName;2);
@If(@IsError(ID);
"notes:///0000000000000000/fallbackSeite?OpenPage";
"notes:///0000000000000000/0/" + ID[1] + "?OpenDocument")

Die Notesurl setzt sich übrigens so zusammen:
notes://<server>/<database>/<view>/<docID>?OpenDocument

wobei "database=0000000000000000" der aktuellen DB entspricht und "view=0" das Doc einfach in der DB sucht

Gruß
Roland
Roland Praml

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz