Page 1 sur 1

Attribus d'une vue

MessagePublié: 14 Juin 2005 à 08:34
par oguruma
ci-dessous une classe permettant de connaître les attributs d'une vue donnée ; elle peut être enrichie... j'ai mis de mon côté les propriétés que j'avais besoin... elles peuvent être étoffées.


Attention : V5 minimum

Code : Tout sélectionner
Public Class ViewAttributes
   Private m_db As notesdatabase
   Private m_view As notesview
   Private m_session As notessession
   
   Sub new (sServer As String, sPath As String, sView As String)
      Set m_session=New notessession
      Set m_db=m_session. getdatabase (sServer,sPath)
      Set m_view=m_db.getview(sView)
   End Sub
   
   '// Renvoie le nombre d'entrées dans une vue
   Property Get CountAllEntries As Long
      CountAllEntries=m_view.AllEntries.Count
   End Property
   
   '// Renvoie le nombre de colonnes
   Property Get CountColumns As Integer
      CountColumns=m_view.ColumnCount
   End Property
   
   '// Renvoie l'ID d'une vue
   Property Get Universalid As String
      Universalid=m_view.Universalid
   End Property
   
   '// Renvoie le nom de la vue
   Property Get Title As String
      Title=m_view.Name
   End Property   
   
End Class


Exemple d'utilisation

Code : Tout sélectionner
Option Public
Use "ViewAttributesClass"

Sub Initialize
   Dim va As ViewAttributes
   Set va=New ViewAttributes("serveur","base.NSF","nomdevue")   
   Msgbox "Nombre d'entrées : " & va.CountAllEntries
   Msgbox "Titre : " & va.Title
   Msgbox "Nb colonnes : " & va.CountColumns
   Msgbox "Universalid : " & va.Universalid
End Sub

MessagePublié: 14 Juin 2005 à 09:02
par oguruma
si vous voulez avoir accès aux méthodes de votre vue il vous ajouter :

Code : Tout sélectionner
Property Get view As NotesView
      Set view=m_view
   End Property



utilisation dans votre code :

Code : Tout sélectionner
Set doc=va.view.getfirstdocument


en effet il serait tentant de faire NomDeVotreClasse As NotesView...
bien non, NotesView est protégé et ne peut pas être héritée
on doit donc passer par une propriété intermédiaire pour accèder au méthode

en java on serait passé par l'abstraction... mais LS ne le permet pas