Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Myron am 07.01.03 - 11:32:28

Titel: befüllen vom RT-Feld im UIDoc
Beitrag von: Myron am 07.01.03 - 11:32:28
Hallo!

Wie kann ich denn ein RT-Feld befüllen, so mit verschiedenen Styles usw.. wenn ich das Dokument als UIDoc angreife? (mit Script) ..

mit uidoc.FieldSetText kann ich keine Styles angeben soweit ich gesehen habe.. hmmm

Grüße..!
Titel: Re:befüllen vom RT-Feld im UIDoc
Beitrag von: Axel am 07.01.03 - 13:36:26
Hi,

hier ein Beispiel aus der Designer-Hilfe, entsprechend an deine Frage angepasst:

...
Dim doc As NotesDocument
Dim rtitem As Variant

'...set value of doc...
Set doc = uidoc.Document

Set rtitem = doc.GetFirstItem( "ProjectDescription" )
If rtitem.Type = RICHTEXT Then
  Call rtitem.AddNewLine( 1 )
  Call rtitem.AppendText _
  ( "Book is 64 pages, full color." )
End If
Call doc.Save( False, True )
...

Weitere Infos findest du in der Designerhilfe bei der NotesRichTextItem - Klasse.

Axel

Titel: Re:befüllen vom RT-Feld im UIDoc
Beitrag von: Myron am 07.01.03 - 14:03:35
Hi Axel!

So hatte ich ich das schon versucht.. also vom UI das dokument holen und dann befüllen.. sobald ich aber appendtext machte.. wurde meine Maske gelöscht.. also alle Felder die ich befüllt hatte waren wieder leer..

Ich könnte das ganze aber auch im hintergrund machen also nicht im UI und später mit der Maske öffnen aber da das Dok nur zum drucken gedacht ist und nicht gespeichert werden soll fällt das auch wieder flach... oder gibts do noch eine möglichkeit?

Grüße
Titel: Re:befüllen vom RT-Feld im UIDoc
Beitrag von: Axel am 07.01.03 - 14:28:01
Hi

Zitat
So hatte ich ich das schon versucht.. also vom UI das dokument holen und dann befüllen.. sobald ich aber appendtext machte.. wurde meine Maske gelöscht.. also alle Felder die ich befüllt hatte waren wieder leer..

Appendtext bezieht sich doch nur auf das RTF - Feld, wieso dann alle anderen Felder geleert ist mir sehr schleierhaft. Ein solches Phänomen ist mir noch nicht untergekommen, es sein den in den Feldern sind igendwelche Formeln (Valiedierungsformeln o.ä.) vorhanden.

Du kannst das ganze sehr wohl im Hintergrund machen. Nehme in die Maske ein verstecktes berechnetes Textfeld auf, nenne es SaveOptions und setze den Wert auf "0". Damit kann die Maske nicht gespeichert werden.

Das Anlegen kann so erfolgen:

...
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem

Set db = session.CurrentDatabase

Set doc = New NotesDocument(db)
doc.Form = "Name der Maske"
'Füllen der Felder
doc.Feldname1 = "Wert"

Set rtitem = New NotesRichTextItem( doc, "Body" )
Call rtitem.AppendText( "Das ist der Text" )

'Dokument im Frontend öffnen
Set uidoc = workspace.EditDocument(false, doc)
...

Vielleicht hilft dir das weiter.


Axel

Titel: Re:befüllen vom RT-Feld im UIDoc
Beitrag von: Myron am 07.01.03 - 15:45:22
hallo!

So habe ich es noch nicht versucht weil ich dachte, dass ich das dokument (doc) erst speichern muss um es dann mit
Set uidoc = workspace.EditDocument(false, doc)
zu öffnen. Probiert habe ich es noch nicht, aber wenns funkt ist das die Lösung!

Vielen Dank!
Grüße
Titel: Re:befüllen vom RT-Feld im UIDoc
Beitrag von: ata am 08.01.03 - 10:25:56
... das ist der Weg, du musst zuvor speichern, das UIdoc schließen und dann eben wieder öffnen...

ata