Autor Thema: Persönliche Ansichten löschen  (Gelesen 1336 mal)

Offline Gruenkohl

  • Aktives Mitglied
  • ***
  • Beiträge: 222
  • Geschlecht: Männlich
Persönliche Ansichten löschen
« am: 15.07.05 - 13:14:43 »
Hallo zusammen,

so weit mir bekannt ist, muss man persönliche Ansichten im Designer löschen, wenn sich an der Gestaltung etwas geändert hat.

Wenn ich dies versuche, bekomme ich oft die Fehlermeldung, "Aktuelle Ansicht kann nicht gelöscht werde".

Da ich einen Agenten schreiben wollte, per Button alle persönlichen Ansichten löscht, ist jetzt die Frage, was er macht, wenn der Fehler auftritt.
Gibt es eine Möglichkeit, die Ansichten auf jeden Fall zu löschen, auch wenn es die Aktuelle Ansicht ist?
Oder reicht es, wenn ich eine Maske aufrufe und dann die Ansichten löschen, d.h. es dürften keine aktuell sein.
Kann es sein, dass sich Notes die letzte Ansicht merkt und es dadurch zu dem Fehler kommt?

Danke und Gruss
Andreas
« Letzte Änderung: 15.07.05 - 15:30:53 von Gruenkohl »

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Persönliche Ansichten löschen
« Antwort #1 am: 15.07.05 - 13:34:56 »
Vielleicht hilft dir das weiter:

Es aktualisiert die Private View wenn sich in der Template View etwas geändert hat:

Sub Postopen(Source As Notesuidatabase)
%REM ====================================================
This code removes out-of-date private views stored on the server. 
Each time the database is opened, it searches for private views.  For each private view, it compares
the Created date to the LastModified date of the corresponding shared view.  If the shared view design
was updated after the private view was created, then we know that the private view's design is out of date.
The private view is then removed and the user is issued a message box advising that they close and reopen
the database.


For R5.0 and later, use the isPrivate property of NotesView rather than isPrivateView(v)

%END REM =================================================
   
   Dim session As New notessession
   Dim Eintrag As String
   Eintrag = session.getenvironmentstring("Privviewdel")
   Dim Heute As String
   Dim masterView As NotesView
   Heute = Today()
   If Heute = Eintrag Then
      Exit Sub         
   End If
   
   Set db = Source.Database    '...works in Database PostOpen event, modify for other contexts
   count=0   
   privateviewtext=""
   tot = Ubound(db.Views) + 1
   Forall v In db.Views
      count=count+1
      Print "Suche veraltete, private Ansichten " & count & " von " & tot & "..."
      If isPrivateView(v) Then                 
         Set masterView = getMasterView(v)  '...get the shared view on which this personal view is based
         If Not(masterView Is Nothing) Then
            If v.Created < masterView.LastModified Then      '...if the shared view design was updated after the private view was
                        '...then remove the private view
               privateviewtext=privateviewtext & Chr(10) & v.name                       
               v.remove                     
            End If
         End If
      End If
   End Forall
   
   If privateviewtext="" Then
      Print "Keine veralteten Ansichten gefunden."
   Else
      Print ""
      Messagebox "folgende private ""Meine"" Ansichten mußten entfernt werden:" & privateviewtext & Chr(10) & "Schließen Sie die Datenbank und gehen wieder hinein."
   End If
   Call session.setenvironmentvar("Privviewdel",Heute)
End Sub

Function isPrivateView(v As NotesView) As Integer
   isPrivateView = False
   
   Set vdoc = v.parent.GetDocumentByUnid( v.UniversalID )   
   If Not (vdoc Is Nothing) Then
      If vdoc.HasItem("$Flags") Then
         If Instr(vdoc.GetItemValue("$Flags")(0), "V") Then
            isPrivateView = True
            Exit Function
         End If
      End If
   End If
   
End Function

Function getMasterView(pView As NotesView) As NotesView
   Set db = pView.parent
   viewList = db.views
   Dim view As NotesView
   Forall v In viewList
      If v.Name = pView.Name Then
         Set view = v
         If Not(isPrivateView(view)) Then
            Set getmasterView = v  '...get the shared view on which this personal view is based
            Exit Function                             
         End If
      End If         
   End Forall   
   Set getMasterView = Nothing
   Print "Die ursprüngliche Vorlage der privaten Ansicht '" & pView.name & "' konnte nicht gefunden werden."
End Function
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Spalter

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Mit der Lizenz zum Löschen!!!

Offline Gruenkohl

  • Aktives Mitglied
  • ***
  • Beiträge: 222
  • Geschlecht: Männlich
Re: Persönliche Ansichten löschen
« Antwort #3 am: 15.07.05 - 15:30:37 »
@robertpp:
Super, danke. Genau so was habe ich gesucht. Klappt auch wunderbar.

@Spalter:
Das von robertpp hat schon geklappt. Aber danke.

Gruss Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Persönliche Ansichten löschen
« Antwort #4 am: 15.07.05 - 15:34:53 »
... Wenn ich dies versuche, bekomme ich oft die Fehlermeldung, "Aktuelle Ansicht kann nicht gelöscht werde".

Oder reicht es, wenn ich eine Maske aufrufe und dann die Ansichten löschen, d.h. es dürften keine aktuell sein.
Kann es sein, dass sich Notes die letzte Ansicht merkt und es dadurch zu dem Fehler kommt?

Hallo Andreas,

hierzu noch eine Erläuterung: Ja, der Client merkt sich, welche Ansicht zuletzt geöffnet war (es könnte ja sein, dass die DB damit wieder standardmässig geöffnet werden soll). Dadurch kannst Du diese "aktuelle Ansicht" nicht ohne weiteres löschen - Du musst vor dem Schliessen der DB zunächst irgendeine andere Ansicht öffnen.
Mit Masken hat das aber gar nichts zu tun - die Info kommt aus dem Client, nicht aus dem Designer.

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz