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

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

Messagepar oguruma » 13 Jan 2008 à 10:43

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
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Michael DELIQUE » 14 Jan 2008 à 08:09

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
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar oguruma » 03 Fév 2008 à 10:02

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:)
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE


Retour vers Divers