Autor Thema: Richtextfelder auslesen; alternative zu DBLookup  (Gelesen 8659 mal)

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Richtextfelder auslesen; alternative zu DBLookup
« am: 21.07.03 - 16:15:43 »
Hi Leute!

Wiedermal... Hab ich irgendeine Möglichkeit ein Richtextfeld auszulesen. Ungefähr so wie das mit DBLookup funktioniert?

Daniel

Glombi

  • Gast
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #1 am: 21.07.03 - 16:22:30 »
Hi,
Du kannst mit @DbLookup auch Rich Text Felder auslesen. Wenn Du das in dem Vorgabewert eines RTF Feldes machst.

Was willst Du denn genau erreichen?

Andreas

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #2 am: 21.07.03 - 16:25:40 »
Ich hab ein Bild in dem RTF und anhand eines Keys möchte ich dieses Bild aus dem RTF auslesen und anzeigen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #3 am: 21.07.03 - 16:31:07 »
RTF auslesen mit @dbLookup - definitiv nicht möglich.

Vielleicht ist es aber auch ein Mißverständnis:
- Wo ist Dein Key ?
- Wie ist das Bild abgelegt - Import, Attachment ?
- Wo willst Du das Bild anzeigen ?

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #4 am: 21.07.03 - 16:42:57 »
RTF auslesen mit @dbLookup - definitiv nicht möglich. ---leider nicht!

Also ich hab mehere Varianten durchgeschaut. zum einen Bilder als Ressourcen anlegen. Allerdings können dann die User keine Bilder anlegen. Wobei dann wäre es wesentlicheinfacher gewesen, die Bilder anzuzeigen.

Nun hab ich eine Bildmaske, dort wird über Datei - Importieren das Bild angezeigt und ein Bildname ein Feld geschrieben.

Es gibt auch eine Ansicht dafür.

In einer anderen Maske wird nun der Bildname vom jeweiligen Bild angegeben und in einem anderen Feld sollte anhand des Bildnames das Bild ausgelesen werden. Mit Texten funktioniert das ganz prächtig mit DBLookup.

Ich hoffe es ist verständlich...

Daniel

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #5 am: 21.07.03 - 16:51:42 »
... du könntest dir das Richtextfeld aus dem fernen Dokument ziehen und dann deinem lokalen Richtextfeld anhängen oder damit austauschen - dafür mußt du dein Uidoc allerdings speichern, schließen und dann erneut öffnen...

ata
Grüßle Toni :)

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #6 am: 21.07.03 - 16:55:58 »
und wie geht das?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #7 am: 21.07.03 - 17:00:27 »
So wird die Sache klarer ;-)

Ich befürchte, Du willst die Sache mit @functions machen ? Das wird nix - zumindest fällt mir da jetzt nix ein.

Mit Script geht es mit folgendem Prinzip - key sei hier der Feldinhalt mit dem Bildnamen, was in einer Ansicht dargestellt wird:
- key ermitteln
- Zieldokument im UI im EditModus haben
- über key in der Ansicht mit GetDocumentByKey NotesDocument instantiieren
- doc im FrontEnd öffnen mit NotesUIWorlspace.EditDocument im Edit-Modus (!)
- NotesUIDocument.GotoField zum RT-Feld mit dem Bild
- NotesUIDocument.SelectAll (markiert das RT-Feld)
- NotesUIDocument.Copy
- ZielDokument: Wieder ...GotoField (wo das Bild rein soll)
- ZielDokument: ....Paste

Das erspart vor allem das grottige Handling mit RT-Items im Backend und dort auch das Problem, das das Bild ja mehr als ein item belegen kann.

HTH,
Bernhard

Glombi

  • Gast
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #8 am: 21.07.03 - 17:01:48 »
Also,
man kann RFT per @DbLookup auslesen. Du musst in der Formel den Feldnamen für das RTF angeben.

Andreas

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #9 am: 21.07.03 - 17:10:26 »
@koehlerbv
Danke, ich bin aber im Scripten noch nicht so weit. Geht das ganze nur über Script?

@Glombi

Also ich hab das in der Hilfe gefunden:

Feldnamen angeben
Wenn Sie einen Feldnamen für die Suche verwenden, entspricht der zurückgegebene Wert genau dem Wert, der tatsächlich im Feld gespeichert ist. Dieser Wert kann sich von dem in der Ansicht angezeigten Wert unterscheiden. Notes/Domino kann Daten von jedem Feld eines beliebigen Dokuments abrufen, das in einer angegebenen Ansicht angezeigt wird. Wird das Feld aber nicht als Spalte in der Ansicht ausgegeben, ist die Suche ist zeitaufwendig, weil dann das ganze Dokument nach dem Feld durchsucht werden muß. Mit @DbLookup können Sie Daten eines Rich-Text-Feldes nicht abrufen.
Es kann auch der Fall sein, daß einige Dokumente zwar den Schlüssel, nicht jedoch das angegebene Feld enthalten, weil sie mit anderen Masken erstellt wurde.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #10 am: 21.07.03 - 17:25:20 »
Tja, ich habe bislang die Aussagen der Designer-Hilfe hinsichtlich rich text items auch immer für bindend gehalten. Sicherheitshalber hab' ich das eben mal nachgebaut in 'ner Test-DB - und die Designer-Hilfe hat wieder mal Recht - dbLookup liest keine RT items aus.

@Daniel: Das geht es nur in Script (wenn ich jetzt nicht gerade an geistiger Umnachtung leide).

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #11 am: 21.07.03 - 17:29:48 »
Danke mal vorerst!
Ich werd hier weiterposten, (dieses Thema), sobald ich mich in L-Script etwas eingelesen habe.

Nicht das ich dir was unterstellen möchte, koehlerbv, aber ich hoffe du leidest..... ;) ;) ;)
Wäre auf jeden Fall einfacher dann.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #12 am: 21.07.03 - 17:44:14 »
Hi, Daniel,

ich denke, für solche und viele anderen Sachen lohnt es sich, sich mit LS zu beschäftigen. Am Anfang nicht so easy, aber dann ;-)

Jemand könnte Dir hier jetzt natürlich etwas zusammen schreiben, aber ohne wirkliches Verständnis des Codes geht das für Dich nur nach hinten los.
Wenn Du innerhalb des LS-Codes dann auf ein Problem stößt, dann postet Du das hier wieder, damit einer von uns Dir über die Klippen helfen kann. Und wenn's dann fertig ist, dann weißt Du auch, was Du *selbst* geleistet hast ;-)

Ich habe das letztens schon hier mal hier angeboten: Ein guter Start in LS ist das LotusScript Technical Learning Center, das es mal kostenlos von Lotus gab, aber wohl von der WebSite genommen wurde. Wenn Du Interesse daran hast, schreib' mir einfach off-list eine eMail, und schick' Dir diese Notes R5-DB.
Ansonsten immer fleissig die Designer-Hilfe ausschlachten ;-)

HTH,
Bernhard
« Letzte Änderung: 13.09.08 - 16:11:41 von koehlerbv »

Glombi

  • Gast
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #13 am: 21.07.03 - 20:52:59 »
Hi,
auch auf die Gefahr hin, dass ich mich wiederhole: Man kann mit @DbLookup Rich Text Felder auslesen, das habe ich schon wiederholt gemacht.

Und zwar so:
Du erstellst ein Rich Text Feld in einer Maske und gibt als Vorgabewert folgendes ein:
@DbLookup("","";"Bilder";"Firma A","Body")

Das holt Dir dann aus einem Konfig.-Dokument, in dem Bilder verwaltet werden, das Bild. Achtung: Das Feld Body darf NICHT als Spalte in der View stehen!

In der Lotus Notes Knowledge Base gibt es dazu folgendes (#111833):

@DbLookup Fails to Return Rich Text Field

Problem:

You have a rich text field that correctly references another rich text field using @DbLookup.  For example, in the following formula "richtext" is the name of a rich text field in the database db.nsf.

@DbLookup("":"NoCache";"db.nsf";"View by Category";"Smith";"richtext")

When executed, however, the formula yields a null value without an error message.

Solution:

If the view specified in the @DbLookup references the rich text field as part of a column definition, a null string results.  Rich text fields cannot be displayed in a view, and therefore should not be referenced in a view column definition.

However, @DbLookup will retrieve a field as it appears in a view before it references fields as they appear in a document.  A possible workaround is to remove the column in question from the view, so that Notes is forced to look at the rich text field as it appears in the document.  Refer below for some limitations with this approach.

Supporting Information:

Using @DbLookup to pull information from a RTF is not supported because of certain limitations. Refer to the technotes listed in the Related Documents section for more information on the limitations.

For the most part, however, an RTF can use @DbLookup as a default formula to pull information from another RTF provided that the following are true:

   - The RTF being looked up is a single RTF that contains less than 42K worth of data.
        and
   - The RTF  being looked up is not referred to in the lookup view.


Übrigens: Mit LotusScript könnt Ihr das so nicht machen. Wenn Ihr ein Rich Text Item setzt, steht das erst zur Verfügung, nachdem das Dokument im Backend gespeichert wurde.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #14 am: 21.07.03 - 21:50:50 »
Andreas,

jo, Du hast wahr ! Und doch auch nicht - aber eins nach dem anderen:

Was @dbLookup angeht: Da habe ich wirklich an geistiger Umnachtung gelitten - Daniels fromme Wünsche haben nicht geholfen ;-)  Ich erinnere mich jetzt auch wieder an den entsprechenden (bzw. ähnlichen) KBase-Artikel.
A-Bär: Das von Andreas beschriebene Verfahren setzt voraus, daß man beim Erstellen des Docs bereits weiß, welches Setup-Dok man auslesen will. Geht ja, ist aber tricky.
Ich hab' jetzt eben ein paar Tests gemacht in einer klitzekleinen Datenbank mit (Bild-)Setup-Dokumenten gemacht, die nach dem von Andreas beschriebenen Verfahren funktioniert. Die Ergebnisse sind aber mehr als durchwachsen (aber vielleicht mach' ich ja was verkehrt!) - mal wird das RTF im Setup-Dok ausgelesen, mal nicht. Vor allem (offensichtlich) nicht, wenn das Bild so gross ist, daß es im Setup-Dok in mehrere Items zerlegt wird. Aber auch manch kleineres (5 kB- he, das kann ja "an sich" keinen Trouble verursachen) wird nicht korrekt übernommen.

Und was LS angeht, kommen wir jetzt zum Punkt: Das von mir beschriebene Verfahren klappt mit beliebig grossen Pics, und es arbeitet überhaupt nicht im Backend, sondern im Frontend und über das Kopieren über die Zwischenablage. Also: Nix mit "Dokument muß gespeichert, geschlossen und neu geladen werden, bevor man was sieht" und dem sonst üblichen Ärger mit RTFs.

Wie dem auch sei: Es würd' mich wirklioch sehr interessieren, ob ich bei Andreas' Verfahren (@dbLookup und Schwierigkeiten mit Bildformat im Dok und Bildgrösse / n items) was übersehen habe.
Sonst läuft Daniel nämlich ggf. "ins offene Messer" ...

Danke im Voraus,
Bernhard

Glombi

  • Gast
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #15 am: 21.07.03 - 22:06:28 »
Hi  Bernhard,
das mit den RTF Einschränkungen kann schon sein, aber erst bei 42 K. Aber egal,
ehrlich gesagt, ist Dein Ansatz besser!

Ich habe sowas auch schon gemacht. Um das ganze dann auf die Spitze zu treiben. Es könnte ja sein, das man dem gemeinen Notes-Anwender kein Bearbeitenrecht auf das Setup geben möchte. Dann ist es mit GotoField etc. schlecht.
Daher mein Vorschlag. Im Lesemodus der Konfigmaske zeigt man nur das Bild (RTF Feld) an. Der Rest wird durch Hide-When Formeln nur im Bearbeitenmodus angezeigt.
Dann öffnet man das Dokument im Lesemodus, markiert alles (also nur das Bild), kopiert es in die Zwischenablage und fügt es ein.
Alternativ könnte man auch mit "Verbergen beim Weiterleiten" arbeiten. Dann kann man alles im lesemodus anzeigen, beim Kopieren wird aber nur der Inhalt des RTF Item genommen.

Das ginge auch in Formelsprache...

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #16 am: 21.07.03 - 22:18:39 »
Hi, Glombi,

in einem anderen Formum hast Du geschrieben "Das Forum ist echt genial". Du hast absolut wahr !

Danke herzlich für Deinen Hinweis (und die Blumen ;-)
In meinem Kontext gab es bislang nicht die Notwendigkeit, die Setup-Doks dem "Normaluser" zur Bearbeitung zu entziehen (siehe unten). Sollte dies aber notwendig sein, ist das Verfahren "alles ausser dem RTF per hide-when" verbergen natürlich sehr elegant.

Jetzt das "siehe unten": Bild-Setup-Dokumente (zum Beispiel Setup-Docs mit dem Firmenlogo, die für Briefe etc. übernommen resp. kopiert werden sollen) kann man ja dahingehend verbergen, daß sie
- in keiner Ansicht und in keinem Erstellen-Menü" auftauchen, die dem Normal-User zugänglich sind.
- Versteckte Ansichten sind aber natürlich auch dem "gemeinen User" zugänglich, wenn er weiß, wie.
- Und da wir ja das Copy&Paste über das UI-Dok vornehmen müssen, können wir ja auch nicht über Autoren-Felder oder @UserRoles im PostOpen etc.pp. das Öffnen im EditMode abfangen.

Vulgo: Dein Verfahren ist top, alternativ könnte man in Abhängigkeit von Roles das Dokument mit einer anderen Maske öffnen, die nur das Bild anzeigt.
Ich habe wieder was dazugelernt - wobei wir wieder beim Aufhänger sind: "Das Forum ist echt genial" !!!

Häff a neiss neiht oll tugesser !
Bernhard

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #17 am: 22.07.03 - 08:55:19 »
hm, in welche Richtung soll ich nun gehen?

Problematisch bei Lotus Script ist ja, dass es im Webbrowsernicht so ganz hinhaut...

Daniel

Glombi

  • Gast
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #18 am: 22.07.03 - 09:05:32 »
Hi Daniel,
dass es auch im Web funktionieren soll, ist ein kleine Einschränkung, auf die man besser von Anfang an hinweist  ;D

Über habe ich das übersehen in meinem Eifer, für die Formelsprache einzutreten?
@Bernhard: Geht das mit dem @Dblookup auch im Web? Du hast ja ne kleine Testdatenbank...

Es gibt auch noch einen anderen Workaround, der auch im Web und LotusScript funktionieren sollte.

Erstelle eine Kopie des Setup Dokuments und setze dann die Felder auf Deine maske um. Dann wird auch das RTF mitkopiert. Dann per Script das Dokument im Browser öffnen.
Das ganze müsste mit einem LS Agenten angetriggert werden.

Andreas
« Letzte Änderung: 22.07.03 - 09:40:15 von Glombi »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Richtextfelder auslesen; alternative zu DBLookup
« Antwort #19 am: 22.07.03 - 09:52:51 »
@dbLookup sollte auch im Web funktionieren - das ist aber nicht meine Rennstrecke. Es bleiben aber die Einschränkungen hinsichtlich Bildgrösse und Typ - ob das dann immer ein ansehnliches "Bild" ist, was dbLookup da ausliest ...

Meine Methode funktioniert aber definitiv im Web nicht. LS und UI-Operationen im Web beissen sich.

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz