Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Nexus am 30.11.04 - 08:59:30
-
Hallo,
sicherlich ist es für viele leicht, aber ich habe den Befehl zum Erzeugen von Feldern leider nur für die Formelsprache gefunden. Könntet ihr mir ihn mal nennen ? ;)
-
... in der Klasse NotesDocument
Call doc.replaceitemvalue("feldname","wert")
oder
Call doc.AppendItemValue("feldname","wert")
oder
New NotesItem( doc, "feldname", "wert", typ) oder oder oder ..
du siehst du solltest dich ein wenig mit den Klassen auseinander setzen, ganz so einfach wie mit FIELD feldname:= "wert" oder @SetField("feldname";"wert") ist es nicht.
Schaue dir doch einmal die o.g. Klasse an, da soltest du schon etwas finden.
Gruß Sascha
-
dachte replaceitem... wäre um in einem Feld einen wert zu überschreiben. Dass man damit auch Felder erzeugen kann, hab ich nicht gewusst ( übersehen in der Designer Hilfe ) :o
-
gern geschehen und viel Erfolg ...
Gruß Sascha
-
Du kannst auch ganz einfach
doc.NeuerFeldname = "Wert"
schreiben. Dann hast auch ein Feld im Dokument.
-
Vor dem AppendItemValue kann ich nur dringend warnen !!!
Aus der Hilfe:
Note In general, ReplaceItemValue is favored over AppendItemValue. If an item of the same name already exists in a document, AppendItemValue creates a second item of the same name, and the duplicate items are not accessible except through a work-around. If you are creating a new document, AppendItemValue is safe.
Mir ist schleierhaft, warum man zwei gleiche Items in einem Dokument haben will. Ausser RTF fällt mir da gar nichts ein.
Und es ist somit ein Quell unendlicher Freude für die Fehlersuche !
Andreas
-
Du kannst auch ganz einfach
doc.NeuerFeldname = "Wert"
schreiben. Dann hast auch ein Feld im Dokument.
Bei mir funktioniert der Befehl nicht :(
-
Sollte aber.
Ist das doc befüllt? Hast du es eventuell nacher nicht abgespeichert?
-
ja, das Doc ist gefüllt.
Ja, ich habe es abgespeichert.
-
Dann poste mal den Code!
-
Dim docDB1 As NotesDocument
Dim db1 As NotesDatabase
Dim session As New NotesSession
Dim searchview1 As NotesView
Set db1 = session.GetDatabase( "", "c:\Dokumente und Einstellungen\Markus\Eigene Dateien\Notes\vergleich\VergleichDB1.nsf" )
Set searchview1=db1.GetView("Groups")
Set docdb1= searchview1.GetNextDocument(docdb1)
' call docdb1.errdescription = "Test Test"
In das docdb1 Dokument möchte ich ein Feld erzeugen.
Aber mit deinem Vorschlag, bleibt die Zeile rot.
Kann sein, dass ich errdescription als Notesitem definieren muss ?
-
Lies doch mal genau, was rar geschrieben hat. Wo siehst Du denn da ein "Call".
Und anzumerken ist, Du mußt das Dokument dann auf jeden Fall mit Save speichern.
-
verdammt stimmt. Ahh... hab in der letzten Zeit viel Call verwenden müssen. Ist ja keine Klasse. Ok. Fehler gefunden.
thx
-
Die Lösung von rar nennt sich übrigens "Extended Class" Syntax"
Aus der Hilfe:
"Extended class" syntax
You can also change an item's value using the NotesDocument "extended class" syntax, which eliminates the need for ReplaceItemValue. For example, you have the following script:
Dim item As NotesItem
Set item = doc.ReplaceItemValue _
( "Subject", "Update on stock options" )
Call doc.Save( False, True )
You can achieve the same result by doing the following:
doc.Subject = "Update on stock options"
Call doc.Save( False, True )
This syntax lets you treat NotesDocument as an "extended class" by using an item name as if it were a property of NotesDocument. In the example above, "Subject" is used as if it is a property of the NotesDocument class. The result is the same as if you used ReplaceItemValue, except that ReplaceItemValue returns a NotesItem object representing the item you just created, and the IsSummary property defaults to True.
Es sei darauf hingewiesen, dass die Performance schlecht im Vergleich zu ReplaceItemValue ist (dafür hat der Programmierer weniger zu tippen).
Andreas
-
Deswegen sollte man AppendItemValue immer nur in Verbindung mit hasitem zusammen benutzen. wenn man in eine bereits vorhandenes Item reinschreiben will. Dafür ist das Dingens nämlich da.
Thomas
-
Deswegen sollte man AppendItemValue immer nur in Verbindung mit hasitem zusammen benutzen. wenn man in eine bereits vorhandenes Item reinschreiben will. Dafür ist das Dingens nämlich da.
Thomas
Hi Thomas,
kannst Du das genauer erläutern? Warum sollte man kein ReplaceItemValue nehmen sondern erst eine Abfrage auf HasItem?
Andreas