也给你一点思路:
可以直接用代理来操作视图中的文档然后再显示出来:
你写一个代理,然后在嵌入视图的表单的WEBQUERYOPEN中运行代理:
REM 实现视图显示分页
Dim s As New NotesSession
Dim doc As NotesDocument
Set doc=s.DocumentContext
Dim db As NotesDatabase
Set db=s.CurrentDatabase
Dim view As NotesView
Set view=db.GetView(doc.v_view(0))'视图名称
Dim ll_count As Long
If view Is Nothing Then
Msgbox "view is Nothing!"
Goto bz
End If
Dim viewdc As NotesViewEntryCollection
If doc.v_keysort(0)<>"" Then
Set viewdc=view.GetAllEntriesBykey(doc.v_keysort(0))
Else
Set viewdc=view.AllEntries
End If
Dim numdoc,rowsperpage As Integer
numdoc=viewdc.count'记录总数
rowsperpage=Val(doc.v_rowsperpage(0))
If (numdoc Mod rowsperpage)=0 Then
doc.v_pagenum=numdoc/rowsperpage
ll_count = numdoc/rowsperpage
Else
doc.v_pagenum=Int(numdoc/rowsperpage)+1
ll_count=Int(numdoc/rowsperpage)+1
End If
Dim start As Variant
start=Evaluate({@middle(query_string;"start=";"&")},doc)
If start(0)<>"" Then
doc.v_currentpage=Int(Val(start(0))/rowsperpage)+1
Else
doc.v_currentpage="1"
start(0)="1"
End If
Dim item As NotesItem
'Set item=doc.GetFirstItem("v_dispage")
Set a = New NotesRichTextItem(doc, "v_dispage")
If Cstr(doc.v_gopage(0))<>"" Then
start(0)=(doc.v_gopage(0)-1)*rowsperpage+1
End If
Call a.AppendText("[<table width = 100%>]")
Call a.AppendText("[<tr>]")
Call a.AppendText("[<td align = left>]")
Call a.AppendText("[<font size = 2>]")
Call a.AppendText("[<font size = 2 color = red>]记录总数:"+Cstr(numdoc)+"[</font>] 页数:")
For i=Int(Val(start(0))/rowsperpage)-4 To Int(Val(start(0))/rowsperpage)+4
If i>=0 Then
If i>=doc.v_pagenum(0) Then
Exit For
End If
If i=Int(Val(start(0))/rowsperpage) Then
Call a.AppendText("[[<font size = 3 color=red>]"+Cstr(i+1)+"[</font>]]")
Else
Call a.AppendText("[[<a href="+doc.form(0)+"?openform&start="+Cstr((i)*rowsperpage+1)+"&count="+Cstr(rowsperpage)+">"+Cstr(i+1)+"</a>]]")
End If
End If
Next
Call a.AppendText("[</font>]")
Call a.AppendText("[</td>]")
Call a.AppendText("[</tr>]")
Call a.AppendText("[</table>]")
bz:
Print {<body onload=window.navigate("}+doc.form(0)+{?openform&start=}+start(0)+{&count=}+Cstr(rowsperpage)+{")>}
Print {</body>}
Dim session As New notessession
Set db=session.currentdatabase
Set doc=session.documentcontext
'///////////////////////////////////
&nb sp;If doc.gopage(0)="0" Then
Print "<script language=javascript> window.alert('请输入正确的页码!') </script>"
Print "<script language=javascript> window.history.back()</script>"
Exit Sub
End If
'//////////////////////////////////
If Cint(doc.gopage(0))>Cint(doc.totalpages(0)) Then
Print "<script language=javascript> window.alert('输入超过最大页码!')</script>"
Print "<script language=javascript> window.history.back()</script>"
Exit Sub
End If
'///////////////////////////////////
path=db.file path
dp=Cint(doc.gopage(0))
dp=Cstr((dp-1)*20+1)
Prin t "["+path+"/$$viewtemplate+for+($inbox)?openform&start="+dp+"]"
Exit Sub
errorhandler:
Messagebox "代理运行发生错误!!" &Str(Err)&":"&Error$
Exit Sub