Domino 9 und frühere Versionen > ND6: Entwicklung

Ansichtsauswahl-Formel für response im Bezug auf parent

<< < (2/3) > >>

koehlerbv:

--- Zitat von: sja am 18.01.05 - 16:14:08 ---Wenn Du sagst, dass das unmöglich ist, dann ist es auch! Glaube ich das in jedem Fall  :)

--- Ende Zitat ---

Mach das nicht, Sofia - ich bin auch nur ein Mensch, der irrt (in diesem Forum mehrfach nachzulesen  ;) )

Aber ich glaube, Du kannst Dir den Agent trotzdem mit einer entsprechenden Ansicht einfacher aufbauen.
Nur so als eine Idee:
Eine Ansicht, die nur die Antwortdokumente mit dem Flag = 1..3 anzeigt. Damit ist sicherlich die Anzahl der zu bearbeitenden Dokumente schon mal deutlich eingeschränkt. Zu den Dokumenten holst Du Dir dann das ParentDoc via NotesDatabase.GetDocumentByUNID und NotesDocument.ParentDocumentUNID - das ist ein extrem schnelles Verfahren für den Zugriff auf Dokumente in einer DB.

Aufpassen musst Du nur auf die ADT-Falle, wenn Du den Antwort-Dokumenten dann den Status Flag = "4" verpasst, da diese dann ja aus der Ansicht herausfallen und GetNextDocument in die Hose geht: Du musst also, bevor Du in einem Dokument doc.Flag = "4" setzt, einem docTemp das aktuelle Dokument zuweisen und dann den Pointer auf das nächste Dokument setzen:

If Updatebedingung = True then
   Set docTemp = doc
   Set doc = view.GetNextDocument.(doc)
   docTemp.Flag = "4"
Else
   Set doc = view.GetNextDocument.(doc)
End If

HTH,
Bernhard

Thomas Schulte:
und wenn du es ganz raffiniert machen willst und  es durchaus möglich ist, das mehrere Antwortdokumente zu einem Parent existieren dann prüft du jedesmal bevor du dir den parent holst ob der nich schon geladen war und wenn er schon geladen war wie der Status des Parents ist. Damit sparst du auch das noch ein, wobei hier der Geschwindigkeitsgewinn ambivalent sein kann.

Thomas

sja:
Hallo Bernhard,
hallo Thomas,

kann keine richtigen Wörter zu finden, um euch für so hilfreiche Vorschläge zu danken.
Die Idee mit NotesDatabase.GetDocumentByUNID und NotesDocument.ParentDocumentUNID gefällt mir sehr und ich werde die sofort implementieren als auch Set docTemp = doc.
Eine Ansicht mit dem Flag = 1..3 habe ich schon. Jedes "haupt" hat nur ein einziges Antwortdokument von Typ "antw1" und das macht den Fall viel einfacher, aber sonst hätte ich den Rat von Thomas gefolgt.
Die Ergebnisse werde ich berichten.
Das Forum ist mein einziger Gespräch-Partner in dem Bereich LotusNotes-Programmierung und ich weiss das alles zu schätzen!

Herzlichen Dank noch mal  :)
Liebe Gruesse
Sofia



 

sja:
Hallo,

vielen Dank noch mal für Eure Hilfe, alles funktioniert hervorragend.
Hier die Lösung:


Ansicht “antw1” mit Ansichtsauswahl-Formel:

SELECT  (Form = "antw1")&(flag = "1":"2":"3")

und der Agent enthält folgender Code

Option Public
Dim db As NotesDatabase
Dim view As NotesView
Dim VEC As NotesViewEntryCollection   
Dim ve As NotesViewEntry
Dim s As  NotesSession
Dim antw1 As NotesDocument
Dim haupt As NotesDocument


Sub Initialize
   Set s = New NotesSession
   Set db = s.CurrentDatabase
   Set view =db.getview("antw1")
   Set VEC = view.AllEntries

   If Not(view.EntryCount = 0) Then
      Set ve = VEC.GetFirstEntry()
      
      While Not (ve Is Nothing)
         Set antw1 = ve.Document
Sorry dieser Zeile ist falsch <<Set haupt = db.GetDocumentByUNID(antw1.HauptDocumentUNID)>>
                     Richtig                 Set haupt = db.GetDocumentByUNID(antw1.ParentDocumentUNID)
         If haupt.ProjektStadium(0) = "post" Then      
            Set ve = VEC.getNextEntry(ve)
            Call MailSenden
            antw1.flag = "4"
            Call antw1.Save( True, True )
            Call view.Refresh
         Else
            Call view.Refresh
            Set ve = VEC.getNextEntry(ve)
         End If         
      Wend   
   End If
End Sub

Function MailSenden...

Ich liebe dieses Forum! :)

Liebe Gruesse
Sofia

koehlerbv:
Kann das stimmen, Sofia:

Set haupt = db.GetDocumentByUNID(antw1.HauptDocumentUNID)

Muss es nicht heissen:
Set haupt = db.GetDocumentByUNID(antw1.ParentDocumentUNID)

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln