一、聲明進度條代碼:
我們在數據庫的Script庫中加入名爲ProgressBar的庫,
在聲明(Declarations)中加入代碼:
Declare Function NEMProgressBegin Lib "nnotesws.dll"() NEMProgressBegin Lib "nnotesws.dll"(Byval wFlags As Integer) As Long
Declare Sub NEMProgressEnd Lib "nnotesws.dll"() NEMProgressEnd Lib "nnotesws.dll"(Byval hwnd As Long)
Declare Sub NEMProgressSetBarPos Lib "nnotesws.dll"() NEMProgressSetBarPos Lib "nnotesws.dll"(Byval hwnd As Long,Byval dwPos As Long)
Declare Sub NEMProgressSetBarRange Lib "nnotesws.dll"() NEMProgressSetBarRange Lib "nnotesws.dll"(Byval hwnd As Long,Byval dwMax As Long)
Declare Sub NEMProgressSetText Lib "nnotesws.dll"() NEMProgressSetText Lib "nnotesws.dll"(Byval hwnd As Long,Byval pcszLine1 As String,Byval pcszLine2 As String)
Class ProgressBar
Private hwnd As Long
'構造類
New () New (BarRange As Long)
On Error Goto ErrorHandler
'創建進度條
Me.hwnd = NEMProgressBegin(NPB_TWOLINE)
'設置進度條的總長
Call NEMProgressSetBarRange(Me.hwnd,BarRange)
Exit Sub
ErrorHandler:
Dim TheError As String
TheError = "Constructor:Error" + Str(Err) + ":" + Error$
Messagebox TheError,0 + 48,"Progress Bar Error"
End Sub
'回收對象
Public Sub Delete
'取消進度條
Call NEMProgressEnd(Me.hwnd)
End Sub
Sub UpdatePosition() Sub UpdatePosition(BarPos As Long)
'公共方法:更新進度位置
Call NEMProgressSetBarPos(Me.hwnd,BarPos)
End Sub
Sub UpdateProgressText() Sub UpdateProgressText(BarMsg As String,UpdateMsg As String)
'公共方法:更新進度條顯示文字
Call NEMProgressSetText(Me.hwnd,BarMsg,UpdateMsg)
End Sub
End Class
Declare Sub NEMProgressEnd Lib "nnotesws.dll"() NEMProgressEnd Lib "nnotesws.dll"(Byval hwnd As Long)
Declare Sub NEMProgressSetBarPos Lib "nnotesws.dll"() NEMProgressSetBarPos Lib "nnotesws.dll"(Byval hwnd As Long,Byval dwPos As Long)
Declare Sub NEMProgressSetBarRange Lib "nnotesws.dll"() NEMProgressSetBarRange Lib "nnotesws.dll"(Byval hwnd As Long,Byval dwMax As Long)
Declare Sub NEMProgressSetText Lib "nnotesws.dll"() NEMProgressSetText Lib "nnotesws.dll"(Byval hwnd As Long,Byval pcszLine1 As String,Byval pcszLine2 As String)
Class ProgressBar
Private hwnd As Long
'構造類
New () New (BarRange As Long)
On Error Goto ErrorHandler
'創建進度條
Me.hwnd = NEMProgressBegin(NPB_TWOLINE)
'設置進度條的總長
Call NEMProgressSetBarRange(Me.hwnd,BarRange)
Exit Sub
ErrorHandler:
Dim TheError As String
TheError = "Constructor:Error" + Str(Err) + ":" + Error$
Messagebox TheError,0 + 48,"Progress Bar Error"
End Sub
'回收對象
Public Sub Delete
'取消進度條
Call NEMProgressEnd(Me.hwnd)
End Sub
Sub UpdatePosition() Sub UpdatePosition(BarPos As Long)
'公共方法:更新進度位置
Call NEMProgressSetBarPos(Me.hwnd,BarPos)
End Sub
Sub UpdateProgressText() Sub UpdateProgressText(BarMsg As String,UpdateMsg As String)
'公共方法:更新進度條顯示文字
Call NEMProgressSetText(Me.hwnd,BarMsg,UpdateMsg)
End Sub
End Class
二、調用:
1、在你需要調用的代碼的(Options)中加入:
Use "ProgressBar"
2、在Initialize中加入:
'調用進度條
ConstNPB_TWOLINE% = 1
Dim pb As New ProgressBar(10000)
Dim m As Long
For m=1 To 10000
Call pb.UpdatePosition(m)
Next m
ConstNPB_TWOLINE% = 1
Dim pb As New ProgressBar(10000)
Dim m As Long
For m=1 To 10000
Call pb.UpdatePosition(m)
Next m
然後在notes客戶端運行此代理便可。我在導入Excel數據到Domino中的代理中添加了如上代碼,運行效果如:
這個界面跟我們在平時notes客戶端拷貝數據庫文檔見到的是一樣的。