Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Centaury am 04.02.03 - 10:54:37

Titel: Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 04.02.03 - 10:54:37
Hallo allerseits!

Wie kann ich nur die Hauptdokumente anzeigen, zu denen auch Antworten vorhanden sind? @DocDescendants != "0" geht leider nicht...

Danke schonmal

CU

Merlin
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: klaussal am 04.02.03 - 11:08:00
... evtl. @doclevel    ??? ??? ???
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 04.02.03 - 11:13:00
... wenn Abkömmlinge verfügbar sind, dann gibt es ein Feld $REF - bezieh dich doch darauf...

ata

Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 04.02.03 - 11:34:40
Also $REF != "" ?
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Notestime am 04.02.03 - 13:09:13
Nein, mit @IsAvailable($Ref)
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: morewind am 04.02.03 - 13:16:20
Eventuell eine anderer Weg bzw eine Alternative falls die vorgenannten Wege.

also :

1.
Beim erstellen des Antwortdokus speicherst Du in der Hauptdokumaske in einem Feld
einen "Marker" ab.

2.
Jetzt gibt es also Hauptdokus mit und ohne "Marker" mit = es existiert ein Antwortdoku

3. In der entsprechenden Ansicht
Select form="hauptdoku"|form="Antwortdoku&Feldname_marker="z.B.1"
 

Gruß
Mike
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 04.02.03 - 15:43:39
@NotesTime

... müßte das nicht @Available("$REF") heißen?...

ata
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Notestime am 04.02.03 - 15:46:59
@ata: nee, lt. notes hilfe feldname ohne "dingens"

bernd
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 04.02.03 - 15:50:38
... dann nimmt er den "$"-Dollar vermutlich übel...

ata
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 04.02.03 - 15:54:57
Also bei @IsAvailable ($REF) zeigt er kein Dokument und bei @IsAvailable ("$REF") alle...  ???
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 04.02.03 - 17:49:06
... hab grad "Matsch" im Kopf - später noch mal...

ata
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Rob Green am 05.02.03 - 10:52:18
morewind hat die richtige Antwort bereits gegeben.
Es gibt mW keine andere "eingebaute" Notes-Methodik der View zu sagen, nur die Hauptdocs anzuzeigen, die auch Responses haben.
Es sei denn, man "stempelt" das Hauptdoc bei Ersterstellung eines Response Docs ab (bzw. nimmt den Stempel raus, wenn das letzte Response Doc deleted ist..also braucht man im Hauptdoc einen Counter, 0=no responses, >0=n responses)

"Select" Statement dazu siehe morewind
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 05.02.03 - 10:58:11
Das Problem ist, dass die Datenbank schon Doks enthält und im Einsatz ist...
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Performance am 05.02.03 - 11:03:14
das ict doch kein Problem oder ? einen counter mit einem Agent einfügen..... ich nehme an du bist Administrator auf die db


cu
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 11.02.03 - 09:57:56
OK und was ist, wenn ich das Antwortdokument wieder lösche, wie bekomme ich den Zähler wieder runter? *Brettvormkopfhab*
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Rob Green am 11.02.03 - 10:45:15
es gibt ein Datenbank weites Script, nennt sich QueryDocumentDelete...dort wird das Ereignis "Löschen" als Event getriggered. Das ist die passende Stelle für den Minus Counter.
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 11.02.03 - 11:38:29
Ist das Dokument, das gelöscht wird dann ws.CurrentDocument? Oder wie komme ich da ran? Ich brauche ja das ParentDoc.
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Rob Green am 11.02.03 - 12:03:44
das Prinzip ist super einfach, wenn Du es einmal verwendet hast:

Zentrale Punkt ist die Verwendung der Help...
hörst Du einen Begriff wie "QueryDocumentDelete" gehst Du in die Designer Help DB und öffnest die Ansicht "Index"...gib dort einfach den Begriff ein und Notes springt zu dem Begriff insofern es ihn findet. Dann einfach die zugehörigen Docs aufklappen und immer dabei auf BEISPIELE achten. So findet man sich sehr schnell und simpel in der hervorragenden Help zurecht. Ich kann es nicht genug betonen, wie wichtig die Help DB ist, man vergisst es komischerweise aber immer wieder, in dieses geile Teil reinzuschauen.  ;) ;) ;)

in dem Falle:
This example tracks the number of document deletions that occur while a database is open.
(Declarations)
Dim deleteCount As Integer

Sub Postopen(Source As Notesuidatabase)
     deleteCount = 0
End Sub

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
     If Continue Then
          deleteCount = deleteCount + Source.Documents.Count
     End If
End Sub

Sub Querydocumentundelete(Source As Notesuidatabase, Continue As Variant)
     If Continue Then
          deleteCount = deleteCount - Source.Documents.Count
     End If
End Sub

Sub Postdocumentdelete(Source As Notesuidatabase)
     Messagebox Source.Documents.Count _
     & " deleted or marked for deletion"
End Sub

Sub Queryclose(Source As Notesuidatabase, Continue As Variant)
     Messagebox deleteCount & " documents deleted",, _
     "Net deletions"
End Sub
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 11.02.03 - 13:07:58
Schön und gut, aber ich brauche ja genau das Document, das gelöscht wird und muss in dessen Parent ein Feld runterzählen...
Ich kenne und schätze die Hilfe übrigens... ;) Trotzdem danke nochmal!
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 11.02.03 - 15:10:40
Ah, jetzt verstehe ich glaube ich, was du meinst!
Du meinst, über die UIDB.Documents eine Collection erstellen und dann in allen Parents von den Docs in der col AnzahlAntworten - 1
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Rob Green am 11.02.03 - 16:22:11
richtig,
denn die zu löschenden Docs (können ja mehrere auf einmal sein!) bestimmt man über die Source.Documents.Count, bzw. sie sind dem Script damit bekannt. Nun nur noch pro Doc das Parent herausfinden und thats it. Insofern ist das Ansatz völlig korrekt.
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 11.02.03 - 16:27:13
Wat is dat denn??? Expanded Forum   ??? ::) ;D

ata

Ist schon wieder normal - Screen war für gut 3000 Pixel breit...

ata
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 11.02.03 - 17:05:08
Ich will jetzt beim Erstellen einer Antwort im ParentDoc die Anzahl der Antworten + 1 setzen. Komisches Problem: Wenn das Dokument erstellt wird, ist IsResponse= False, ParentDocUID leer. Daher also auch keine Möglichkeit ans ParentDoc ranzukommen. Nach 1mal speichern geht's... ???
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 12.02.03 - 10:45:54
Keiner eine Idee, woran das liegen kann? Wenn ich eine Antwort gerade erstelle, ist sie für Notes anscheinend noch keine Antwort. Daher komme ich nicht ans ParentDoc!
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: ata am 12.02.03 - 11:25:20
... du hast das richtig erkannt, das Dokument hat erst Werte, wenn das Dokument gespeichert wurde...

ata
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: forrest g am 12.02.03 - 11:46:42
hi centaury,

habe mir zwar vorneweg nicht aalles durchgelesen, aber zu deiner letzten frage...

ich habe selbiges gelöst(hier mal eine anleitung ins unreine gesprochen):
- im postsave event deines antwortdocs das zugehörige hauptdoc suchen( über $ref oder sonstwie- ich übernehme im antwortdoc die unid des hauptdoc und baue mir da einen eigenen string zusammen)
- am besten mit einer eigens dafür erstellten ansicht(1. sortierte spalte nach der suchid für das hauptdoc)
- im hauptdoc das feld zahlantworten hochsetzen und speichern

tschö

Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 12.02.03 - 11:50:31
Das Problem ist, dass ich ein Script nur dann ausführen will, wenn das Doc neu ist. Im PostSave bringt mir IsNew nicht viel, oder?
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: forrest g am 12.02.03 - 11:59:22
hi centaury,

das ist wohl wahr...

postsave bringt bei neuen docs nix!

wieso willst du denn die zahl der antworten im hauptdoc raufsetzen, wenn das doc noch nicht gespeichert ist?
(oder hab ich das falsch verstanden?)

denn dann müsstest du ja bei neuen docs, die nicht gespeichert werden auch wieder die antwortzahl runtersetzen´.
ich finde das dann etwas umständlich.
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 12.02.03 - 13:02:39
Wenn eine Antwort erstellt wird, soll im Hauptdokument beim Speichern ein Zähler +1 gesetzt werden. Wird eine Antwort gelöscht, soll der Zähler -1 gesetzt werden. Zweck siehe Topic...
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: forrest g am 12.02.03 - 13:31:09
hallo centaury,

wenn ich das richtig verstanden habe, ist das egal wie viele antworten du zu den hauptdocs hast(?).

ich weiss nich wie man hier zitiert, deshalb...

postsave bringt bei neuen docs nix! , aber...

du kannst den zähler im parentdoc erst hochsetzen, wenn das doc gespeichert ist.
deshalb erst speichern!
und alles andere nachher abfangen, das ist mein vorschlag.

tschö



Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 12.02.03 - 13:35:03
"Zitieren" anklicken ;D
OK, mal sehen, wie ich das gebacken kriege... :-\
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 13.02.03 - 07:27:01
Verstehe ich nicht: Ich habe hier ein Dokument, bei dem wird doc.Responses.Count nicht wieder kleiner, wenn ich die Antwort lösche. Kann mir das jemand erklären?  ???
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Rob Green am 13.02.03 - 12:57:48
Zitat:

ich habe selbiges gelöst(hier mal eine anleitung ins unreine gesprochen):
- im postsave event deines antwortdocs das zugehörige hauptdoc suchen( über $ref oder sonstwie- ich übernehme im antwortdoc die unid des hauptdoc und baue mir da einen eigenen string zusammen)
- am besten mit einer eigens dafür erstellten ansicht(1. sortierte spalte nach der suchid für das hauptdoc)
- im hauptdoc das feld zahlantworten hochsetzen und speichern


« Antwort #26 am: 12.02.03 - 11:50 »     von Centaury

--------------------------------------------------------------------------------
Das Problem ist, dass ich ein Script nur dann ausführen will, wenn das Doc neu ist. Im PostSave bringt mir IsNew nicht viel, oder?  "
 
 
Von da aus ist es nicht mehr weit. Wenn man im Postsave Event nicht auf IsNew zurückgreifen kann, macht man sich eben selbst eins, indem man im gerade gespeicherten Doc ein kleines Feld mit einem Wert - zB "YABADABADUU" - belegt, der nur beim ersten Male gesetzt wird. Bei allen Speichervorgängen wird abgecheckt, ob das Feld schon gesetzt ist. Wenn nein, dann starte Responsecounter Funktion, wenn ja, dann eben nicht. Das ist zum Hochzählen.

Beim Herunterzählen eben das QueryDocumentDelete
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: forrest g am 13.02.03 - 13:51:39
jau, so hab ich das gemeint, Rob.

aber es führen ja bekanntlich viele wege nach rom...
das hab ich jetz aber nich gesacht.

centaury, doc speichern und alles andere dann abfangen, dafür gibts ja die ereignisse.

tschö
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 14.02.03 - 07:36:05
Hmm...OK macht Sinn. Aber kann mir noch einer erklären, warum bei dem einen Dokument der doc.Responses.Count nicht wieder kleiner wird, wenn ich die Antwort lösche?
Titel: Re:Nur Hauptdokumente mit Antworten?
Beitrag von: Centaury am 17.02.03 - 11:54:38
Alles klar, läuft!
Danke allerseits!!