DeletePrivateView

DeletePrivateView

Messagepar Stephane Maillard » 02 Août 2005 à 14:00

[syntax="ls"]'DECLARATIONS

Const APIModule = "NNOTES" ' Windows/32 only
Const NOTE_CLASS_VIEW= &H0008

Declare Function OSPathNetConstruct Lib APIModule
Alias
"OSPathNetConstruct" _
( Byval NullPort As Long, Byval Server As String, Byval FIle As
String,
Byval PathNet As String) As Integer

Declare Function NSFDbOpen Lib APIModule Alias "NSFDbOpen" _
( Byval PathName As String, DbHandle As Long) As Integer

Declare Function NSFDbClose Lib APIModule Alias "NSFDbClose" _
( Byval DbHandle As Long) As Integer

Declare Function NIFFindPrivateDesignNote Lib APIModule
Alias
"NIFFindPrivateDesignNote" _
( Byval hdb As Long, Byval NoteName As String, Byval NoteClass
As Integer,
NoteID As Long ) As Integer


Sub DeletePrivateView(db As NotesDatabase, vname As String)

' To open a Domino database on a server, use this function to
create
' the full path specification, and pass this specification as
input to
NSFDbOpen
' or NSFDbOpenExtended.
p$ = String(1024, " ")
OSPathNetConstruct 0, db.Server, db.FilePath, p$

' This function takes a pathname to an existing Domino database
or database
' template (whether on a Lotus Domino Server or a local database),
opens
the
' database, and returns a handle to it. All subsequent access to
the
database is
' carried out via this handle. Use NSFDbClose to close the database
file
handle
' and deallocate the memory associated with it.
Dim hDB As Long
NSFDbOpen p$, hDB

' Given the name and NOTE_CLASS_xxx of a private design note (form,
view,
' folder, helpindex, macro, field, or replication formula ), this
function
returns the note ID.
' Uses the View or Folder name passed to it - vname.
Dim retNoteID As Long
Dim result As Integer
result = NIFFindPrivateDesignNote(hDB, vname, NOTE_CLASS_VIEW,
retNoteID)

'If result is anything other than 0, the Private Design Note could
not be
found
If result = 0 Then
Dim doc As NotesDocument
' Get the Private View or Folder by its NoteID
Set doc = db.GetDocumentByID( Hex$(retNoteID) )
Call doc.Remove( True )
Print "Removing : " & vname
End If

' This function closes a previously opened database.
NSFDbClose hDB

End Sub[/syntax]And then in the QueryClose event, I just pass the database and view/folder name. Again, add your own errorhandling.[syntax="ls"]Sub Queryclose(Source As Notesuidatabase, Continue As Variant)

Dim s As New NotesSession
Dim db As NotesDatabase

Set db = s.CurrentDatabase

' Pass the name of the Private View or Folder to delete
Call DeletePrivateView(db, "Custom Query")
Call DeletePrivateView(db, "Search Results")
Call DeletePrivateView(db, "Excel Export")

End Sub[/syntax]
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Retour vers API

cron