Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raimund am 08.07.02 - 09:10:12

Titel: Agent - Felder ändern
Beitrag von: Raimund am 08.07.02 - 09:10:12
Hi Entwickler!

Folgendes Problem:

Habe 3 Masken:
1. Firma - Dokument
2. Person - Rückantwort
3. Produkt - Rückantwort

Wenn ich jetzt in der Maske Firma den Firmennamen ändern will, so sollen alle Unterdokumente, welche auch den Firmennamen haben, geändert werden.

Momentan habe ich das so gelöst:

Agent: SetCompany

FIELD companyname:= @Environment( "Company");SELECT @All

Bedeutet im Klartext - ich muss alle Unterdokumente markieren und den Agensten ausführen. Funktioniert auch prima.

Gibt es jedoch eine Möglichkeit, dass automatisch alle Rückantworten des Hauptdokumentes, ohne alle markieren zu müssen, mit den neuen Firmennamen aktualisiert werden?

Vielen Dank

Gruß
Raimund
Titel: Re: Agent - Felder ändern
Beitrag von: Axel am 08.07.02 - 10:10:46
Hi,

das ist kein großes Problem.

Erstelle innerhalb der Hauptmaske folgende Routine:

Sub UpdateResponseDoc(doc As NotesDocument)

Dim collection As NotesdocumentCollection
Dim responsedoc As NotesDocument
Dim i As Integer

Set collection = doc.Responses
For i = 1 To collection.Count
 Set responsedoc = collection.GetNthDocument(i)              
 responsedoc.Company = doc.Company
 Call responsedoc.Save(True, False)
Next

End Sub

Im QuerySave-Event rufst du die Routine dann auf

Call UpdateResponseDoc(Source.Document)

Ich hoffe das hilft dir weiter.

Axel
Titel: Re: Agent - Felder ändern
Beitrag von: Raimund am 08.07.02 - 10:38:21
Hi Axel,

vielen Dank.
Werde es gleich ausprobieren.

Bin halt noch ein Anfänger  :'(

Gruß
Raimund
Titel: Re: Agent - Felder ändern
Beitrag von: feel_x am 11.04.03 - 11:56:03
Hi,

das ist kein großes Problem.

Erstelle innerhalb der Hauptmaske folgende Routine:

Sub UpdateResponseDoc(doc As NotesDocument)

Dim collection As NotesdocumentCollection
Dim responsedoc As NotesDocument
Dim i As Integer

Set collection = doc.Responses
For i = 1 To collection.Count
  Set responsedoc = collection.GetNthDocument(i)              
  responsedoc.Company = doc.Company
  Call responsedoc.Save(True, False)
Next

End Sub

Im QuerySave-Event rufst du die Routine dann auf

Call UpdateResponseDoc(Source.Document)

Ich hoffe das hilft dir weiter.

Axel


Hallo,
kann man diese Routine - genau umgekehrt - auch für die Änderung oder Aktualisieung des Hauptdokumentes bei Änderung des Unterdokumentes verwenden?
öffnen - aktualisieren - speichern würde reichen.

:)
Titel: Re:Agent - Felder ändern
Beitrag von: ata am 11.04.03 - 13:45:32
... zur Korrektur des Hauptdokumentes würde ich mit @SetDocField arbeiten. Die DocID des Hauptdokumentes liegt ja vor...

ata