[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 277
  • Last Modified:

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
0
Areej
Asked:
Areej
  • 2
  • 2
1 Solution
 
ArunkumarCommented:
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

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now