View Selection Criteria

Hello,

I would like to implement a query form that filter the documents based on the criteria the user enters, and display the selected documents in a view.
Is that possible with Notes?

Please note that the query form contains more than 10 fields, and they are optional. i.e. The user can select by one field only or by 10 fields.

Is there a way to specify the view Selection Criteria programatically??

Many Thanks,
Areej
AreejAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ArunkumarConnect With a Mentor Commented:
You cannot programmatically do the view selection but instead you could use a folder and have an action button with which you could populate the folder by using the Search Criteria on the database and getting a collection and further filtering the collection using the search on the collection and finally the end collection is putallinfolder.

If i find the link to a similar question i will post it here.

-Arun
0
 
AreejAuthor Commented:
That's wonderful..
But how to initialize the folder before moving the documents to it? How to delete the old documents from the folder before copying the new documents?

Many thanx,
Areej
0
 
snocrossCommented:
Here is some Lotusscript code you can use to build the folder:

Dim session As New NotesSession
     Dim db As New NotesDatabase("YourServer","YourDirectory\YourDatabase.nsf")
     Dim dateTime As New NotesDateTime( "12/01/94" )
     Dim collection As NotesDocumentCollection
     Dim BackFolder As String
     Dim UIDb As NotesDatabase
     Dim UIDoc As NotesDocument
     Set UIDb = session.CurrentDatabase
     Set UIDoc = session.DocumentContext
     BackFolder = UIDoc.Year(0)
     Set collection = db.Search( "Year = '"+BackFolder+"' & (Form = 'Whatever' | Form = 'SomethingElse')",
dateTime, 0 )
     Set doc = collection.GetFirstDocument
     While Not doc Is Nothing
          Call doc.PutInFolder( "Year_"+BackFolder+"_Results" )
          Set doc = collection.GetNextDocument(Doc)
     Wend
    REM Print("TEST")
     If collection.count >0 Then
          Print "[/YourDirectory/YourDatabase.nsf/Deal_"+BackFolder+"_Results?OpenView]"
     Else
          Print "Sorry, no results found."
     End If
     UIDoc.BuildFolder = "N"
     Call UIDoc.save(True,True)    

Now, what I do is I have a scheduled agent that removes the folders each day:

Dim SourceDb As NotesDatabase    
     Set SourceDb = New NotesDatabase("YourServer", "YourDirectory\YourDatabase.nsf")  
     Forall v In Sourcedb.views
          Set view=SourceDB.GetView(v.Name)
          If v.IsFolder Then
               'Print "Deleting folder " & v.Name
               Call view.Remove
          End If
     End Forall

Hope this helps,

-Snocross
0
 
ArunkumarCommented:
Create an action button with the following code,

@Command([EditSelectAll]);
@Command([RemoveFromFolder])

Also just in the script include a little bit of code that will check the currrent folder is empty.  Just get the first document handle and prompt that the folder has to be cleared.

:-)
0
 
AreejAuthor Commented:
Many Thanx.. :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.