Autor Thema: Schleifenproblem?!  (Gelesen 1344 mal)

Offline skc

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Schleifenproblem?!
« am: 21.01.04 - 09:58:31 »
Hallo Forum,

Ich verlier grad den Überblick den Überblick und brauche Eure Hilfe...

Und zwar möchte ich Dokumente aus einer DB in eine andere kopieren, die das Feld status = "erledigt" besitzen. Das funktioniert auch mit Hilfe von:

...   
   While Not ( doc Is Nothing )
      wert = doc.GetItemValue("status")
      Set doctmp = dc.GetNextDocument (doc )
      If wert(0) = "erledigt" Then
         Call doc.CopyToDatabase(arcdb)
      End If
      Set doc = doctmp      
   Wend
...

Jetzt habe ich bemerkt, dass diesen Dokumenten noch weitere Dokumente (eMail, Word-Dokumente,pp.) zugeordnet sind. Als Schlüssel dient hier ein Feld vnr = " 4711".  
D.h. ein Dokument besitzt die Felder "status" und "vnr", die diesem Dokument zugeordneten Dokumente lediglich "vnr".

Wie kann erreicht werden, dass alle zusammengehörigen Dokumente kopiert werden? Ich denke, dass es mit einer geschachtelten Schleife möglich ist, habs aber einfach noch nicht gebacken bekommen :-[

Danke!

skc
R5
Version 5.0.4

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re:Schleifenproblem?!
« Antwort #1 am: 21.01.04 - 10:24:51 »
Hi!

Du könntest statt dem Call doc.CopyToDatabase(arcdb)
mit
Set collection = db.Search( {vnr = "} + doc.vnr(0) + {"}, nothing, 0)
alle Dokumente, die im Feld vnr den gleichen Wert haben wie das Hauptdokument. In der Collection ist dann auch das Hauptdokument.
Dann kannst du die Collection mit einer Schleife durchlaufen und die Dokumente in deine arcdb verschieben.

HTH
-rar
†090620141300

Offline skc

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Schleifenproblem?!
« Antwort #2 am: 21.01.04 - 12:47:56 »
Hallo rar,

hab deinen Vorschlag ausprobiert. Der Erfolg stellt sich nicht wirklich ein. Wie kann ich den die Collection in die andere DB kopieren? Mit

Call collection.CopyToDatabase(arcdb)

gehts nicht. Hmm... das Prinzip ist mir ja klar, aber an der Umsetzungs scheiterts (noch).

skc
R5
Version 5.0.4

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re:Schleifenproblem?!
« Antwort #3 am: 21.01.04 - 13:00:26 »
Du mußt jedes Dokument einzeln kopieren.

Etwa so:
Set docColl = coll.GetFirstDocument
Do While Not docColl Is Nothing
  call docColl.CopyToDatabase(arcdb)
  Set docColl = coll.GetNextDocument(docColl)
Loop
†090620141300

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz