1、检测当前用户是不是文档的创建者,如果不是,不允许编辑文档。
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim doc As notesdocument
Dim userName As New NotesName(session.UserName)
Set doc=source.document
If Not ( source.EditMode ) Then
If ( doc.authors(0) = username.CANONICAL ) Then
continue=True
Else
Msgbox "您不是此文档的创建人,不可以修改!",0,"文档数据库"
continue=False
End If
End If
End Sub
2、退出时检测关键的域不能为空
Sub Click(Source As Button)
Dim w As New notesuiworkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument
Set uidoc=w.currentdocument
name1=uidoc.fieldgettext("name")
If name1="" Then
Messagebox "姓名不能为空!",0,"通讯录"
Exit Sub
End If
Call uidoc.save
Call uidoc.close
End Sub
3、用私有视图来显示需要当前用户处理的文档,用以下视图公式:
注意建立视图时不要选中"保存到本地"选项,否则调试不便.
SELECT Form = "收文1" & NextApprover=@Name([CN];@V3UserName)
Variant
Set w =New notesuiworkspace
Set uidoc =w.currentdocument
Set aa=uidoc. getObject("Chart")'该句为ole对象声明,注意Chart是你给对象起的名
字 '接下来你就可以通过aa.**来调用其方法和属性了.
End Sub
5、以下是script错误陷阱代码
Sub subname On Error Goto Errcode '下面添加你的程序代码
Exit Sub Errcode: Msgbox "错误 (" & Cstr(Err) & " ) -> " & Error$(Err),16,"错
误提示"
Exit Sub
End Sub
6、是否保存
在表单中设定一个域,名称为saveoptions
下列公式添加到返回按钮中,决定文件退出是否保存
FIELD saveoptions:="1"; 保存 FIELD saveoptions:="0"; 不保存
7、用公式弹出对话框,按确定继续,取消返回.
@If(@DialogBox("表单名";[AutoHorzFit]:[AutoVertFit];"表单标题");"";@Return("
"))
8、用script弹出对话框,按确定继续,取消返回
Dim w as notesuiworkspace
If Not w.dialogbox("表单名",True,True,False,True,False,False,"填写")
Then doc.close'用户按取消退出
Exit Sub
End If
If Weekday(dt.lslocaltime)=7
Then'是周六耶,
dt.adjustday(2) '加两天到星期一
Elseif Weekday(dt.lslocaltime)=1
Then'周日加一天
dt.adjustday(1)
End If
11、得到当前的服务器和路径
公式: ResideServer := @Subset(@DbName; 1) ;
CurrentPath := @Subset(@DbName; -1) ;
DirOnly := @If(@Contains(CurrentPath; "\\");
@LeftBack(CurrentPath; "\\") + "\\"; "");
DbFile := DirOnly + "***.NSF";
12、得到当前用户名
公式:@Name([CN];@V3UserName)
scriptim s as notessession
Dim myname as newnotesname(s.username)
messagebox myname.common
13、得到当前日期公式:
@today @date(@created)
scriptim dt as notesdatetime
Set dt=New notesdatetime("")
Call dt.setnow
14、常用全局对象声明 '-----对象变量-----
Dim w As NotesUIWorkspace
Dim s As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim dt As NotesDateTime
Dim username as notesname
15、一些计算域,开始时没有值,如果不给它一个值会报错,以下公式给计算域赋值
@if(Bfield="";0;Bfield)
16、特殊字符
@char(13)可以在@prompt 提示框中显示回车 script 中用函数chr(13)
17、再notes状态兰中显示进度条
(Declarations) Const NPB_STATUSBAR% = 32
Declare Sub NEMProgressEnd Lib "nnotesws.dll" ( Byval hwnd As Long ) Declare
Function NEMProgressBegin Lib "nnotesws.dll" ( Byval wFlags As Integer ) As
Long
Declare Sub NEMProgressSetBarPos Lib "nnotesws.dll" ( Byval hwnd As Long, By
val dwPos As Long)
Declare Sub NEMProgressSetBarRange Lib "nnotesws.dll" ( Byval hwnd As Long,
Byval dwMax As Long )
Declare Sub NEMProgressSetText Lib "nnotesws.dll" ( Byval hwnd As Long, Byva
l pcszLine1 As String, Byval pcszLine2 As String )
Sub Click(Source As Button)
Dim hwnd As Long Dim i As Long
Dim j As Long 'Create the progress bar hwnd = NEMProgressBegin( NPB_STATUSBA
R ) 'Set the bar range - the default is 100 NEMProgressSetBarRange hwnd, 100
For i = 0 To 100 'Simple delay for the example!!
For j = 0 To 5000 Next 'Update the bar position NEMProgressSetBarPos hwnd, i
Next 'Destroy the dialog when we're done NEMProgressEnd hwnd End Sub