Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bastel123 am 19.06.06 - 13:28:08

Titel: dynamische Anzahl von Feldern in neues Dokument übertragen
Beitrag 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
 
 
Titel: Re: dynamische Anzahl von Feldern in neues Dokument übertragen
Beitrag von: ZaLudtske am 19.06.06 - 13:30:51
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
Titel: Re: dynamische Anzahl von Feldern in neues Dokument übertragen
Beitrag von: Thomas Schulte am 19.06.06 - 13:45:54
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.
Titel: Re: dynamische Anzahl von Feldern in neues Dokument übertragen
Beitrag von: Bastel123 am 19.06.06 - 14:29:35
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|?