Domino 9 und frühere Versionen > ND6: Entwicklung

Link auf Child Dokumente

(1/5) > >>

Andreas Huhn:
Hallo zusammen,

aus einer tabellarischen Materialübersicht (Antwort-Doc) kann man für einzellne Zeilen der Tabelle Bestellungen auslösen. Dazu wird eine Rückantwort-Maske in einem neuen Tab-Fenster innerhalb des Client geöffnet, die vom Benutzer auszufüllen ist.
Wenn dieser die Maske fertig ausfüllt und schließlich speichert dann ist das entsprechende Teil also bestellt.

Nun wäre es schön, wenn im Parent von dem aus der compose-Aufruf der Rückantwort ausging,

1. eine Statusanzeige eingebaut werden kann die anzeigt "bereits bestellt - ja / nein"
2. eine Verknüpfung zu diesem Rückantwort-Dokument erstellt wird

(natürlich nur wenn der Bestellvorgang nicht wieder abgebrochen wird)


Ist das in Notes 6.5.1 möglich?
Wenn ja, wie würdet ihr vorgehen?


Viele Grüße,

Andreas

Axel:
Hi,

das geht so ohne weiteres nicht. Du bekommst keinen Trigger an die auslösende Funktion, also die, die das Compose auslöst, wenn das Antwortdokument erstellt wurde.

Zwei Alternativen wären möglich.

1. Ein Agent, der mehrmals am Tag läuft un die Infos im Hauptdokument aktualisiert. Nachteil: das Hauptdokument ist nicht immer sofort aktuell.

2. Im QuerySave-Event des Antwortdokumentes das dazugehörige Hauptdokument aktualisieren. Das hat aber denn Nachteil, dass du das Löschen separat behandeln musst.

Eine ganz andere Alternative wäre, die Antwortdokumente in einer eingebetteten Maske aus dem Hauptdokument zu verwalten. So habe ich mal eine Bestellungs-DB realisiert.

Das was du nachbilden willst, geht eigentlich schon in die Richtung einer relationalen Datenbank und das kann notes nun mal nicht.

Axel

Andreas Huhn:
Guten Morgen Axel,

die bestehende Struktur soll so wenig als möglich verändert werden, daher würde mir Alternative 2 im Moment am meisten zusagen. Dazu ist es mindestens nötig daß das Rückantwortdoc dem Antwortdoc (im QuerySave) den Status (bestellt?) und eine Doc-ID (die als Link dienen kann) übergibt. Du hast das mit "das Hauptdokument aktualisieren" beschrieben. Aber wie kann ich das realisieren?

Axel:
Hi,

über die Eigenschaft ParentDocumentUNID kannst du dir die ID des dazugehörigen Hauptdokumentes auslesen und dann mit der Methode GetDocumentByUNID aus der NotesDatabase-Klasse die ein Handle auf das Dokument besorgen. Dann kannst die entsprechenden Felder im Hauptdokument anpassen.

Beispiel:

...
Dim response As NotesDocument
Dim parent As NotesDocument

'...set value of response...

Set parent = db.GetDocumentByUNID ( response.ParentDocumentUNID )
parent.Status = "Bestellt"
...

Natürlich darf eine entsprechende Fehlerbehandlung nicht vergessen werden.


Axel


Andreas Huhn:
response muß ich natürlich noch setzen, aber da bekomme ich grade keinen Verweis auf das aktuelle Doc.

mit Source.Document klappt es nicht. Ist ja auch vom Typ uiDocument.

Momentan siehts wie folgt aus:


--- Code: ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim response As NotesDocument
Dim parent As NotesDocument

'...set value of response...
Set db = session.CurrentDatabase
Set response =

Set parent = db.GetDocumentByUNID ( response.ParentDocumentUNID )
parent.Status = "Bestellt"
'...
End Sub

--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln