Autor Thema: dynamische Anzahl von Feldern in neues Dokument übertragen  (Gelesen 1150 mal)

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
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
 
 
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: dynamische Anzahl von Feldern in neues Dokument übertragen
« Antwort #1 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
Rainer Zaske

MCSD - C#

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: dynamische Anzahl von Feldern in neues Dokument übertragen
« Antwort #2 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.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
Re: dynamische Anzahl von Feldern in neues Dokument übertragen
« Antwort #3 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|?
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz