Domino 9 und frühere Versionen > ND6: Entwicklung

AddNewLine Methode

<< < (2/7) > >>

koehlerbv:
Ich hatte die falsche Zeile kopiert, ich meinte natürlich die, die der Debugger brav gefunden. Sorry.

Wenn Du in einer Maske ein Feld vom Typ RTF definierst, hat das zwingend überhaupt nichts damit zu tun, ob es im Dokument dann solch ein Item gibt. Wenn Du das Dokument gerade neu erstellt und noch nicht gespeichert hast, dann gibt es dieses Item eben noch nicht. In diesem Fall musst Du mit NotesDocument.CreateRichTextItem das Item zunächst erzeugen.

Bernhard

Andreas Huhn:
In Ordnung, nun versteh ich das Problem.

Aber egal ob ich die Zeile:
doc.CreateRichTextItem("rtTest")]/i]
voranstelle, oder das Dokument von Hand erstmal speichere, es passiert dann erstmal nichts. Keine Fehlermeldung aber die gewünschte Zeile wird auch nicht in das RT eingetragen.

Wenn ich mit CreateRichTextItem das Feld erzeuge dann müsste er mir aber trotzdem das befüllen das ich in der Maske bereits definiert habe, oder? Denn ein zweites mit dem Namen wäre sowieso nicht zulässig. Trotzdem versteh ich nicht warum sich gar nichts tut.

Grüße,

Andreas

Axel:

--- Zitat von: Andreas Huhn am 08.11.05 - 07:59:49 ---Denn ein zweites mit dem Namen wäre sowieso nicht zulässig.

--- Ende Zitat ---

Bei RTF-Feldern ist es möglich, dass es mehrere Felder gleichen Namens in der Maske gibt.


Wenn du ein RTF-Feld mit programmiertechnisch füllst, dann siehst du den Inhalt nicht sofort. Das Dokument muss erst geschlossen und wieder geöffnet werden.


Axel


Andreas Huhn:
Okay.

habe bemerkt daß das befüllen auch nur dann klappt wenn das Dokument nicht im Edit Modus ist. Deshalb hab ich den Code ein bischen angepasst:


--- Code: ---Sub Click(Source As Button)
Dim doc As NotesDocument
Dim rtitem As Variant
Dim ws As New NotesUIWorkspace
Dim EditFlag As Boolean

'...set value of doc...
Set doc = ws.CurrentDocument.Document

EditFlag = ws.CurrentDocument.EditMode
Call ws.EditDocument( True )
Call ws.CurrentDocument.Save
Call ws.EditDocument( False )

Set rtitem = doc.GetFirstItem( "rtTest" )
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 )

ws.CurrentDocument.EditMode = EditFlag
End Sub

--- Ende Code ---


Ohne den Versuch das Dokument zu speichern, also wenn ich das selbst mache dann klappt es auch. Mit der Zeile Call ws.CurrentDocument.Save nicht mehr. Habs auch mit doc.Save( True , False) versucht. Klappt auch nicht.

Andreas Huhn:
Wenn ich die Zeile:
Call ws.EditDocument( True )
weglasse und als Save-Anweisung folgendes verwende:
Call ws.CurrentDocument.Save
dann gehts.

Allerdings kommt dann eine Fehlermeldung wenn das Dokument bereits gespeichert ist und die Anweisung sie nochmal speichern will. Wie kann ich das abfangen und nur dann speichern wenn das Dokument noch nicht gespeichert wurde?

Eine LS Entsprechung zu @IsDocBeingSaved hab ich nicht finden können.

Grüße

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln