Page 1 sur 1

Déterminer rapidement le nombre de doc réponse dans une base

MessagePublié: 13 Jan 2008 à 10:43
par oguruma
Objectif :
- détecter si une base contient des documents de type réponse et en connaître le nombre

Un document de type réponse contient en fait un champ système $Ref faisant référence au document père (le sujet) ou la réponse quand c'est réponse à réponse

Il faut cependant tenir compte aussi des documents conflit qui contiennent aussi un $Ref en plus du champ $Conflict

il faut donc effectuer une recherche sur $Ref en écartant le champ $Conflict

la formule du search est
{@isAvailable($Ref) & $Ref!="" & @isUnAvailable($Conflict)}

le $Ref!="" permet d'écarter les $Ref non alimenté... mesure de précaution

pour en connaître le nombre il suffit de récupérer la propriété count de la collection renvoyée

ainsi par cette astuse il est sera inutile de parcourir tous les documents et de vérifier si isResponse = true

MessagePublié: 14 Jan 2008 à 08:09
par Michael DELIQUE
pour le fun

Code : Tout sélectionner
Function nbDocReponce(wDB As NotesDatabase) As Integer
   
   Dim Collection As NotesDocumentCollection
   
   On Error Goto ErreurHandle
   
   nbDocReponce = 0
   
   If wDB Is Nothing Then
      Exit Function
   Elseif dbexists_LS(wDB) = False Then
      Exit Function
   End If
   
   Set Collection = wDB.Search({@isAvailable($Ref) & $Ref!="" & @isUnAvailable($Conflict)},Nothing,0)
   
   If Not collection Is Nothing Then
      nbDocReponce = Collection.Count
      Set collection = Nothing
   End If
   
   
   Exit Function
ErreurHandle:
   Msgbox "("Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   
   nbDocReponce = 0
   Exit Function   
End Function

MessagePublié: 03 Fév 2008 à 10:02
par oguruma
encore plus simple
un dbsearch sur "@isresponse"... il fallait y penser


pour récupérer les document qui ont des attachement on fait un dbsearch sur "@attachments"
ainsi on a tous les doc qui ont des PJ (sexy :lol:)