Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 01.07.05 - 10:41:25
-
Hallo Zusammen,
ich versuche zwei Datenbanken zu einer zsuammenzuführen.
Die Dokumente in der Datenbank X sollen als Hauptdokumente gelten.
Soweit passt es auch.
Die Dokumente der DB Y sollten Antwortdokumente sein.
Habe nun zwei Ansichten. In der einen sind die Hauptdokumente und in der Anderen die Antwortdokumente.
Allerdings haben die keine Referenz zueinadner.
Beide haben als identisches Feld "Thema"
Das heißt, irgendwie müsste ich nach dem Thema die Referenz bilden, so dass die Antwortdokumente ihre zugehörigen Hauptdokumente finden.
Habt Ihr eine Idee, wie ich das am besten machen kann??
danke Euch
Selin
-
Hallo,
das geht wohl nur mit LS:
In der Antworten-DB solltest du eine sortierte Ansicht nach Thema haben.
Je Hauptdokument holst du dir dan per GetAllDocumentsByKey( sKey , True ) die Antwortdokumente in eine Collection, kopierst das Dokument in die Zieldatenbank und machst es anschließend .MakeResponse zu deren Antworten.
Dabei mußt du beachten, daß die Maske der Antwortdokumente in der anderen Datenbank als Designelement enthalten ist und als Antwort - oder Antwort auf Antwort deklariert ist.
Toni
-
Hallo Selin,
spannende Frage dabei ist dann noch, ob es denn in der Datenbank Y Antwortdokumente gibt, für die es in der Datenbank X keine Hauptdokumente gibt?
Ist das nicht der Fall, passt Tonis Vorschlag perfekt. Falls doch, muß man sich für diese Dokumente noch was überlegen.
Viele Grüße
Andreas
-
Vielen Dank für die Antworten.
Werde es mal so versuchen...
Liebe Grüsse
Selin
-
Hallo,
habe es jetzt versucht.
Habe eine Ansicht, in der die Hauptdokumente und die Antwortdokumente auf gleicher Eben drin stehen.
Nach diesem Prinzip
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim docA As NotesDocument
Dim docB As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "Alle" )
Set docA = view.GetFirstDocument
Set docB = view.GetNextDocument( docA )
Call docB.MakeResponse( docA )
docB.Form = "Umlauf"
Call docB.Save( True, True )
End Sub
würde ich es versuchen, Antwortdokumente zuzuordnen.
Allerdings habe ich ein Problem:
Es existiert nicht zu jedem Hauptdokument ein Antwortdokument.
Die erste Spalte ist die "Subject" Spalte.
Diese beinhaltet eine Nummer. Dieses Feld gibt es in beiden Masken.
Also ich hätte die Möglichkeit zu prüfen, ob Subject identisch ist und wenn ja, soll er mir das 2. Dokument in der Ansicht als Antwortdokument zum drüberliegenden Dokument machen.
Habe es versucht aber ich krieg das nicht hin.
Bitte um Hilfe
Danke + Gruss
Selin
-
Hi,
das könnte so aussehen:
...
Set db = session.CurrentDatabase
Set view = db.GetView( "Alle" )
Set docA = view.GetFirstDocument
Set docB = view.GetNextDocument( docA )
If docA.Subject(0) = docB.Subject(0) Then
Call docB.MakeResponse( docA )
docB.Form = "Umlauf"
Call docB.Save(TRue, True)
End If
...
Axel
-
Hi Axel,
genauso hatte ich es auch getestet, allerdings ohne die (0) ;-)
Aber da tut sich nix, wenn ich das so ausführe. ???