Create a private view based on a "main" view

Hi,Create a personal view in lotusscript (or formula) maybe using data from the profile doc…

I have been searching around this forum and can’t find any examples for this … I have seen people say is better to create private folders on the fly, or that it can be done - but don’t say how :frowning:

I have writen the code for what I want to do with the view once it exists, but how to create it??

I have found the CreateView method - but how do I make it private?

Also if anyone knows how to delete it later that would be useful (dosen’t seem to be a db.deleteView method )

Thanks loads for any help and sorry for the long post.

Jimmy

Subject: delete private view

here’s a script library I got off some dude in the notes 5 forum (I think). it works great.

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

’ then put this in your database queryclose event.

Call DeletePrivateView(db, “myPrivateView”)

Subject: RE: delete private view

Thanks lodas for that! - Thats one major step done :slight_smile:

You wouldn’t happen to know how create a privte view too??

Thanks loads!