Page 1 sur 1
récupérer la valeur total d'une colonne

Publié:
21 Déc 2009 à 15:16
par jyperier
Bonjour, je dois récupérer des informations de mes bases mails et notamment le résultat d'une colonne qui somme la taille des messages.
J'ai le nom de la vue, le nom de la colonne, la vue est catégorisée donc je ne souhaite que récupérer la valeur totale et pas refaire la somme dans mon script
Quelle fonction dois-je utiliser ?
Merci

Publié:
21 Déc 2009 à 15:24
par Michael DELIQUE
salut
jete un oeil du coté des notesviewentry

Publié:
22 Déc 2009 à 08:59
par Ahamay
Hello,
Alors ??? ou ça en est c'te récup de totaux ? ça m'interesse moi aussi. Me suis amusé avec la classe notesviewEntry (merci michael), j'ai réussi à récupérer plein de truc dans ma vue.... plein, mais pas les totaux -lol-
je creuse....

Publié:
22 Déc 2009 à 09:01
par Michael DELIQUE
S'il y a une solution c'est via les notesviewentry, mais j'ai rien a dispo et je ne sais pas si c'est faisable

Publié:
22 Déc 2009 à 09:32
par jyperier
aie, ca veut dire qu'il faut refaire le total en script.
ca va etre sympa pour des vues de quelques milliers de document d'un poid allant de 20 ko a plusieurs mo.
je cherche...

Publié:
22 Déc 2009 à 10:02
par Michael DELIQUE
re
il faut utiliser les notesviewentry c'est plus rapide, car au lieux de lire le doc tu lis la vue.

Publié:
22 Déc 2009 à 11:13
par Ahamay
+1 @Michael
entry.ColumnValues(N°col)
te permets de récupérer la valeur de la colonne en question,
En collant ça dans une boucle on doit dois pouvoir en faire le total
c'est sur c'est con de devoir reclaculer qqchose qu'on a deja mais faute de mieux.

Publié:
22 Déc 2009 à 11:22
par jyperier
j'ai trouvé.
Voila l'astuce
Il faut passer par la classe NotesViewNavigator et faire un code du genre :
- Code : Tout sélectionner
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim view As NotesView
Dim nav As NotesViewNavigator
Dim entry As NotesViewEntry
Set uiview = ws.CurrentView
Set view = uiview.View
Set nav = view.CreateViewNav
Set entry = nav.GetLast ' pour le dernier
ou Set entry = nav.Gefirst ' pour le dernier

Publié:
22 Déc 2009 à 11:23
par Ahamay
j'ai poussé un peu :
J'ai une vue avec des catégories (Critere) - 1ere colonne....
dans la seconde colonne, des valeurs....
- Code : Tout sélectionner
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim column As NotesViewColumn
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "vrecuptotal" )
Forall c In view.Columns
If ( c.IsSorted And c.IsCategory ) Then
Set column = c
Exit Forall
End If
End Forall
Set doc = view.GetDocumentByKey( "critere " )
Dim i As Integer
i=0
Do While Not ( doc Is Nothing )
i = i + doc.ColumnValues( 1 )
Set doc = view.GetNextDocument( doc )
Loop
Msgbox i
End Sub
msgbox m'affiche bien le total de la catégorie.... et c'est super rapide.

Publié:
22 Déc 2009 à 11:25
par Ahamay
Arf.... bon bin j'le remets dans ma musette.