'This agent is based on SearchViewEntries written by Vince Di Mascio 'Homepage: http://www.vincedimascio.com/vince/vpd.nsf Sub Initialize ' run from web /SearchViewEntries?Open&vw=VIEWNAME&q=QUERY&Start=STARTPOSITON&Count=NUMOFENTRY On Error Goto ErrorHandler Dim session As New NotesSession Dim thisDb As NotesDatabase Dim thisDoc As NotesDocument Dim view As NotesView Dim entry As NotesViewEntry Dim nvec As NotesViewEntryCollection Dim i As Integer, Start As Integer, Count As Integer Dim l As Long, j As Long Dim qs As String, vw As String , q As String ' TEST Dim starttime As New NotesDateTime("") Dim finishtime As New NotesDateTime("") Dim elapsedSeconds As Integer Call starttime.SetNow ' TEST Print "Content-type: text/xml" Print {} Set thisDb = session.CurrentDatabase Set thisDoc = session.DocumentContext qs = thisdoc.Query_String_Decoded(0) 'changed touse LS q = Strleft(Strright(qs,"q="),"&") vw = Strleft(Strright(qs,"vw="),"&") Start = Cint(Strleft(Strright(qs,"Start="),"&")) Count = Cint(Strleft(Strright(qs,"Count="),"&")) Set view = thisDb.GetView( vw ) Set nvec = view.AllEntries 'build array of headers Dim headers As Variant Redim headers(0) Forall c In view.Columns Redim Preserve headers(i) headers(i) = XMLEncode(c.title) i = i + 1 End Forall Call nvec.FTSearch( q, Start+Count ) j = nvec.Count Print {} l = Start Set entry = nvec.GetNthEntry(l) For l = Start To Start+Count Set entry = nvec.GetNthEntry(l) If entry Is Nothing Goto Finish Print {} i = 0 Forall v In entry.columnvalues Print {} Print {} & XMLEncode(Cstr(v)) & {} Print {} i = i + 1 End Forall Print {} Next Finish: ' TEST Call finishtime.SetNow elapsedSeconds = finishtime.TimeDifference(starttime) Print {} 'done Exit Sub ErrorHandler: Print "error: " & Error & " on line " & Erl Exit Sub End Sub Function XMLEncode (inputStr As String) As String 'lifted from http://searchdomino.techtarget.com/tip/1,289483,sid4_gci1048230,00.html Dim i As Integer Dim outputStr As String Dim char As String For i = 1 To Len(inputStr) char = Mid$(inputStr, i, 1) If Asc(char) > 31 And Asc(char) < 127 Then Select Case char Case "&": outputStr = outputStr & "&" Case "<": outputStr = outputStr & "<" Case ">": outputStr = outputStr & ">" Case "'": outputStr = outputStr & "'" Case |"|: outputStr = outputStr & """ Case Else: outputStr = outputStr & char End Select Else outputStr = outputStr & "&#" & Asc(char) & ";" End If Next XMLEncode = outputStr End Function