Page 1 sur 1

Notesdatabase.getview

MessagePublié: 16 Mars 2010 à 11:56
par Michael DELIQUE
bonjour

j'ai Notesdatabase.getview qui me fait ce qu'il veux...

il me trouve certaines vues et pas d'autres

la seule chose qui pourrait expliquer cela c'est que les vues non trouvé contiennent des parentheses dans le leur nom et leur pseudo genre

ma vue (001) | mavue(001)

quelqu'un a déja vue ça ?

MessagePublié: 16 Mars 2010 à 12:00
par stloje
T'as pas de doublon de synonyme?

MessagePublié: 16 Mars 2010 à 12:21
par Michael DELIQUE
non j'ai regardé

par contre c'est une vue public devenant privé a la premiere utilisation, mais je n'ai jamais eu ce genre de pb avec

je pense plustot que notes perd ses petit avec les parenthese

MessagePublié: 16 Mars 2010 à 12:49
par stloje
Tu as essayé de parcourir l'ensemble des vues et visualiser leur nom et leur synonyme en LS? Ca te permettrait de savoir si tu visualise les vues qui te manquent.

MessagePublié: 16 Mars 2010 à 12:51
par Michael DELIQUE
c'est ce que je suis en train de faire

MessagePublié: 16 Mars 2010 à 13:12
par Michael DELIQUE
ouaip ça marche en bouclant sur les vues

j'ai fait cette fonction

Code : Tout sélectionner
Function ViewInit(wDB As NotesDatabase, wViewName As String) As NotesView
   
   'permet d'nstancier une vue si elle est introuvable
   
   Dim DBCible As NotesDatabase
   Dim vrListViews As Variant
   Dim vrListAlias As Variant
   Dim vwSearch As NotesView
   
   On Error Goto ErreurHandle
   
   Set ViewInit = Nothing
   
   If Trim(wViewName) = "" Then
      Error 9999,"wViewName is empty"
      Exit Function
   End If
   
   If Session Is Nothing Then
      Set Session = New NotesSession
   End If
   
   If wDB Is Nothing Then
      Set DBCible = Session.CurrentDatabase
   Else
      Set DBCible = wDB
   End If
   
   'tentative de connexion standard
   Set ViewInit = DBCible.GetView(Trim(wViewName))
   If Not ViewInit Is Nothing Then
      Set DBCible = Nothing
      Exit Function
   End If
   
   'sinon boucle sur l'ensemble des vues pour comparer les names et pseudos
   Set ViewInit = Nothing
   
   'recuepre la liste des vues
   vrListViews = DBCible.Views
   If TestVariant(vrListViews) = False Then
      Set DBCible = Nothing
      vrListViews = Null
      Exit Function
   End If
   
   'parcours les vues
   Forall ValueView In vrListViews
      Set vwSearch = ValueView
      If Not vwSearch Is Nothing Then
         'reagrde si le nom est identique
         If Trim(wViewName) = Trim(vwSearch.Name) Then
            Set ViewInit = vwSearch
            Exit Forall
         Else
            'sinon boucle sur chaque alias/pseudo
            vrListAlias = vwSearch.Aliases
            If TestVariant(vrListAlias) = True Then
               Forall ValueAlias In vrListAlias
                  If Trim(Cstr(ValueAlias)) <> "" Then
                     If Trim(Cstr(ValueAlias)) =  Trim(wViewName) Then
                        Set ViewInit = vwSearch
                        Exit Forall
                     End If
                  End If
               End Forall
            End If
            vrListAlias = Null
         End If
         Set vwSearch = Nothing
      End If
      If Not ViewInit Is Nothing Then
         Exit Forall
      End If
   End Forall
   
   vrListAlias = Null
   vrListViews = Null
   Set DBCible = Nothing
   
   Exit Function
ErreurHandle:
   Msgbox "("+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Set ViewInit = Nothing
   Exit Function
End Function

MessagePublié: 16 Mars 2010 à 13:45
par stloje
J'espère pour toi que tu n'as pas 200 vues à parcourir :D

Sinon, le traitement est rapide?

MessagePublié: 16 Mars 2010 à 13:47
par Michael DELIQUE
ça va, de toute façon, j'ai pas trop le choix... ou alors il faut renommer les vues !

MessagePublié: 09 Juin 2010 à 20:23
par roubech
t'es obligé de mettre des paranthèses aussi dans les alias ?

MessagePublié: 09 Juin 2010 à 20:53
par Michael DELIQUE
non, mais j'ai fais avec les vues tels qu'elles étaient, un renommage étant impossible