访问现有的对象最好使用 LotusScript,例如:根据其他文档的值来更改一个文档中的值。LotusScript 提供了一些公式没有的功能,例如:操作数据库存取控制列表 (ACL) 的能力。
写script关键是取对象,查看对象的属性,所以你要学会看notes提供的Script帮助。下面是我收集的一些script例子。一般是比较技巧的程序,要学习一般script编写,请下载lotusScript学习库!
如何辨别域中数据的类型?
CODE:
Dim Item as NotesItem
set item=doc.getfirstitem("item")
if item.type=NUMBERS then
end if
怎样判断视图中没有文档?
CODE:
set doc = vw.getfirstdocument()
if doc is nothing then
end if
如何将查询结果放到一个文件夹里?
下面是将搜索结果放到名叫newfolder的文件夹中,并跳转到该文件夹上
CODE:
Sub Click(Source As Button)
Dim docs As notesdocumentcollection
Dim doc As notesdocument
...........
q=doc.query(0)
Set docs = db.ftsearch(q, 0)
Call docs.PutAllInFolder( "newfolder" )
Call w.OpenDatabase( "","","newfolder")
End Sub
如何删掉数据库中所有私有视图?
CODE:
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument
Set db=session.currentdatabase
Forall i In db.views
Set doc=db.getDocumentByUNID(v.universalID)
' 这个地方视图当作文档来处理,以便取到视图的一些属性。
viewflag=doc.getItemvalue("$flags")
If viewflag(0)="pYV" Then
' 视图属性中$flags为"pYV"的是私有视图。
Call i.remove
End If
End Forall
如何在Notes中调用ODBC数据源中的进程?
下面是一个利用ODBC调用access数据库(资料库)的script代码
CODE:
Dim session As New NotesSession
Dim con As New ODBCConnection
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
con.ConnectTo("资料库")
qry.SQL = "SELECT * FROM 资料库"
result.Execute
If result.IsResultSetAvailable Then
Do
result.NextRow
id=result.GetValue("ID",id)
Loop Until result.IsEndOfData
result.Close(DB_CLOSE)
Else
Messagebox "Cannot get result set for AssetData"
Exit Sub
End If
con.Disconnect
End Sub
从后台刷新当前文档?
将当前文档先关闭后再打开
CODE:
set doc=uidoc.document
......
call uidoc.save()
call uidoc.close()
set uidoc=ws.editdocument(doc)
获得当前视图中选择了的文档?
可以用 Notesdatabase 的 Unprocesseddocuments 属性。
CODE:
Dim session As New notessession
Dim db As notesdatabase
Dim collection As notesdocumentcollection
Set db = session.currentdatabase
Set collection = db.UnprocessedDocuments
Unprocesseddocuments 其实很有用的