Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bikerboy am 05.09.07 - 17:36:37
-
Hallo,
habe wieder mal eine Herrausforderung. Ich brauche den TEXT aus einem Richtextfeld in einer View. Ist das möglich wenn ja wie. Habe durch die Forumssuche leider keine Ergebnisse erziehlt
-
ja, es geht über 2 Wege:
1. Wilder Stunt: Beim speichern das NotesRichtextItem finden, und manuell das "IsSummary" - Property setzen... Sehr gefährlich und nicht unbedingt gut für die Daten- Integrität.
2. Ein weiteres Feld in der Maske hinzufügen, das Wahlweise mit @Abstract( Richtextfeld ; Parameter ) oder (erst seit R6 möglich) simpel mit @Text( Richtextfeld ) befüllt wird.
HTH
Tode
-
Guten Morgen,
so die Sache mit @Text hat trotz Notes 6.5.5 nicht hingehauen, dann habe ich mir einen Wolf wegen @Abstract gesucht und finde in der Hilfe folgende Zeilen.
Caution Rich text fields are not part of a document until saved. If you want @Abstract to work on additions and changes to the current document, you must first save and then recalculate the document. @Abstract cannot convert rich text to text in a view column
Werde nun ein Feld in der Maske bauen das beim Speichern den Text aus dem RichTextFeld zieht.
Da werde ich es erst nochmal mit @Abstract versuchen, ansonsten gibts hal script zum Frühstück
-
Genau das hat Tode aber auch geschrieben. Und das funktioniert auch.
-
2. Ein weiteres Feld in der Maske hinzufügen...
Du musst schon lesen, was man Dir postet... ;)
Sonst hätte ich ja geschrieben: In der Spalte der Formel hinzuufügen...
Als Feld funktioniert dann auch die @Text - Variante...
Tode
-
:-[
Tut mir leid , habe es dann auch so umgesetzt, aber nun habe ich aber das Problem , das der Knopf (sieh anderen Thread) trotzdem nicht funzt.
-
Morgen zusammen,
ich habe das gleiche Problem mit dem RichText Feld, dass ich als Text in einer Spalte anzeigen lassen möchte...
Leider funktioniert das mit dem neuen berechneten Feld in der Maske und dem @text(RTF) nicht bei mir :-(
Die Ansicht referenziert in der Spalte das neue berechnete Feld, aber angezeigt wird nix.
Bitte um Hilfe :-)
-
Ich mache es mit LotusScript. Ein Feld namens "BodyTxt" (Berechnet beim Anlegen, versteckt, Formel "BodyTxt") und dann im Postsave setzen:
Entweder
plainText$ = notesRichTextItem.GetUnformattedText( )
oder
plainText$ = notesRichTextItem.GetFormattedText( tabstrip, lineLength% )
Danach nochmal das Backend-Dok. speichern.
-
Also sollte es so funktionieren? Sorry bin Skriptanfänger - bisher war Formelsprache mehr mein Gebiet :-)
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Set session = New NotesSession
Set db = session.CurrentDatabase
Set doc = Source.Document
Set rti = doc.GetFirstItem("Attachment")
If rti Is Nothing Then Exit Sub
BodyTxt = rti.GetUnformattedText()
Messagebox(BodyTxt)
Die Messagebox erscheint, aber leider leer...
-
BodyTxt$ = rti.GetUnformattedText() ??
-
ne leider bringt das $ auch nix :-( ist das Pflicht bei Script zur kennzeichnung von Feldern?
-
Wo ist denn der Code?
Wichtig:
When you change the value of a NotesRichTextItem object, the change is not written to disk until you call the Save method for the parent NotesDocument.
D.h. das ganze geht nur, wenn das Dokument bereits im Backend gespeichert wurde!
Daher meine Aussage bzgl. "Postsave".
Du kannst den Code mal testweise in einen Button einbauen und dann für ein vorhandenes Dokument ausführen.
Das $ ist egal, verwende ich nie.
Andreas
-
@Andreas
Hast Du dann die Variable deklariert? Bestimmt.
Das $ ist ja nur eine implizite Deklaration und da er keine Fehlermeldung bekommt gehe ich mal von einem fehlenden Option Declare aus und wird das dann nicht automatisch zu einem Variant?
-
Also es ist ein Antwortdokument zu einem schon gespeicherten Parentdokument.
Ich speichere und schließe das Antwortdokument über einen normalen Button. Danach wird ja der Postsave ausgeführt oder?
-
Und im Feld "Attachment" steht auch bestimmt Text drin?
-
Ja ne das ist doch ein RichText Feld...das Anhänge aufnimmt. Und ich möchte mir praktisch den Dateinamen anzeigen lassen.
Habe ich mich missverständlich ausgedrückt - sorry!
-
;D
Das ist ein bischen komplitizitierter. Schau Dir mal in der Hilfe
Working with attachments and embedded objects in LotusScript classes
an...
-
Da wäre es wohl das einfachste, die Namen per @AttachmentNames in ein Feld schreiben zu lassen.
-
Das funktiniert dann so:
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Set session = New NotesSession
Set db = session.CurrentDatabase
Set doc = Source.Document
Set rti = doc.GetFirstItem("Attachment")
If ( rti.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
Messagebox( o.Name )
End Forall
End If
Axel
-
Ja ne das ist doch ein RichText Feld...das Anhänge aufnimmt. Und ich möchte mir praktisch den Dateinamen anzeigen lassen.
Habe ich mich missverständlich ausgedrückt - sorry!
Bitte erstelle demnächst einen neuen Thread! Es ging hier konkret darum, den TEXT anzuzeigen, der in dem Rich Text Feld ist und NICHT darum, den Namen des Anhangs.
Den bekommst Du ohne irgendwelche Scripts mit @AttachmentNames.
Andreas