Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bastel123 am 19.06.06 - 13:28:08
-
Moin, Moin,
ich möchte eine große Anzahl von Feldern per script in ein neues Dokument übertragen.
Zur Zeit passiert das so:
:
:
Set newdoc = db.CreateDocument
With Newdoc
.SV_System = sourcedoc.SV_System(0)
.SV_Host = sourcedoc.SV_Host(0)
.SV_SEM = sourcedoc.SV_SEM(0)
:
:
End With
Bei zur Zeit 300 (werden wohl noch mehr) Feldern ist das eine ziemliche Tipperei und nicht besonders gut pflegbar. Später muß ich noch ähnliche Stunts machen.
Meine Idee:
ein Array mit den Feldnamen aufbauen:
Fieldname(0) = "SV_System"
Fieldname(1) = "SV_Host"
Fieldname(2) = "SV_SEM"
etc.
Dann
Dim var1, code1 as As String
und nun durch das array
Arrayanfang
var1 = Fieldname(n)
code1 = "." + var1 + " = " + "sourcedoc." + var1 + "(0)"
execute |code1|
nächster Wert
Arrayende
Code1 wird zwar aufgebaut, allerdings scheitert das execute, das Document wird nicht erzeugt.
Muß ich den Code erweitern um irgendwelche Deklarationen?
Vielen Dank
Bastel123
-
Hallo,
schau dir doch mal die Methoden ReplacItemValue und GetItemValue des NotesDocument an. Mit diesen Methoden solltest du deine Probleme lösen können.
Rainer
-
Von hinten durch die Brust ins Auge. Oder wie war der Spruch gleich noch einmal.
Wenn du ein Dokument eins zu eins kopieren willst dann gibt es einfachere. Viel einfachere Methoden als das Konstrukt das du dir da gerade ausgedacht hast.
Wie wäre es zum beispiel mit CopytoDatabase oder als Alternative das Copyallitems?
Solltest du nocht alle Felder benötigen dann würde ich trotzdem alles kopieren (so es denn keine Feldkollisionen gibt) und anschließend das was du nicht brauchst wegwerfen. Das dürfte der schnellere und einfachere Weg sein. notfalls über ein Zwischendokument. Ach ja und die Feldlisten würde ich nicht hardcoden sondern in ein Konfigurationsdokument packen.
-
Vielen Dank für den Input,
@Rainer
Damit geht es, ich muß nur mal den kürzesten Weg rausfinden.
@Thomas
alle Felder zu kopieren und dann die überflüssigen zu löschen ist der selbe Aufwand, da in der Maske wirklich viel drin steht (außerdem hat das neue Document eine andere Maske, hatte ich leider nicht extra erwähnt).
Der Tip mit dem Konfigurationsdokument war gut. Hätte ich doch glatt erst im driten oder vierten Schritt wieder dran gedacht, bei den anderen Stunts.
Gruß Bastel123
PS. wie war das denn nun mit evaluate |Code|?