lotus笔记.docx
- 文档编号:4656900
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:39
- 大小:33.91KB
lotus笔记.docx
《lotus笔记.docx》由会员分享,可在线阅读,更多相关《lotus笔记.docx(39页珍藏版)》请在冰豆网上搜索。
lotus笔记
一.Ls中对域的取值问题:
对于LotusScript,除了Rich-Text域外的元素,如文本、单选框、列表框、复选框等,你可以用几乎相同的代码取得它们的值。
例如:
如果有一个“Location”域,不论它是何种类型,你都可以用下面的LotusScript代码取得它的值:
fieldVals=doc.Location
或者这样:
fieldVals=doc.GetItemValue("Location")
二.我如何在页面上建立一个热点,让它打开一个文档?
在页面上写一段文字,然后选上这段文字,然后点菜单”创建”–热点--操作热点
然后选LotusScript,举个例子,比如打开ID为NT00000C62的文档:
SubClick(SourceAsButton)
DimuiworkspaceAsNewnotesuiworkspace
DimcurdatabaseAsnotesuidatabase
DimdatabaseAsnotesdatabase
DimdocAsnotesdocument
Setcurdatabase=uiworkspace.currentdatabase
Setdatabase=curdatabase.database
Setdoc=database.getdocumentbyid("00000C62")
Calluiworkspace.EditDocument(True,doc,False)
EndSub
三.我如何实现归档,比如我如何把当前视图中所有被选中的文档归入文件夹fold中?
用lotusScript象如下这样实现:
SubAddDocToFold(foldAsString)
DimuiworkspaceAsNewnotesuiworkspace
DimuiviewAsnotesuiview
DimdocAsNotesDocument
DimdocListAsString
Setuiview=uiworkspace.currentview
Forj=1Touiview.Documents.Count
Setdoc=uiview.Documents.GetNthDocument(j)
Calldoc.PutInFolder(fold)
Next
EndSub
四.我如何实现把某文件夹视图中的被选择的文档从该文件夹中清除,但却不能删除他们?
用Script实现如下:
SubRemoveDocFromFold(foldAsString,allAsInteger)
'功能:
'把文档从某个文件夹中移走,但并不删除此文档
'参数:
'fold:
文件夹
'all:
0表示仅移走当前选择的文档,1表示移走该文件夹中所有文档
DimuiworkspaceAsNewnotesuiworkspace
DimuiviewAsnotesuiview
DimdocAsNotesDocument
DimviewAsnotesview
Setuiview=uiworkspace.currentview
Setview=uiview.view
Ifall=0Then'移去所选文档
Forj=1Touiview.Documents.Count
Setdoc=uiview.Documents.GetNthDocument(j)
Calldoc.RemoveFromFolder(fold)
Next
Else
Ifall=1Then'移去全部文档
Setdoc=view.GetFirstDocument
'遍列该视图的所有文档,获取所有满足条件的纪录数
WhileNot(docIsNothing)
Calldoc.RemoveFromFolder(fold)
Setdoc=view.GetNextDocument(doc)
Wend
EndIf
EndIf
'Evaluate("@Command([ViewRefreshFields])")
EndSub
五.我如何把当前视图中的所有的被选择的文档的某个域的值替换掉?
用lS实现如下:
SubSelectedDocFieldReplace(FieldAsString,repvalAsString)
'功能:
'把所选文档中的每个Field域的值改为repval
'参数:
'Field要更改的域的名称
'repval修改后的域值
DimuiworkspaceAsNewnotesuiworkspace
DimuiviewAsnotesuiview
DimdocAsNotesDocument
Dimorder_numAsString
'order_num=Inputbox$("请输入批次")
Setuiview=uiworkspace.currentview
Forj=1Touiview.Documents.Count
Setdoc=uiview.Documents.GetNthDocument(j)
OnErrorGotolable1
Calldoc.replaceitemvalue(Field,repval)
Calldoc.save(True,False)
Next
ExitSub
lable1:
Msgbox("错误!
,所选文档没有指定的域,这个错误发生在没有给selectedDocFieldReplace()函数传递正确的参数")
ExitSub
EndSub
六.如何实现表单上的内容根据用户的输入动态变化?
一般可以用notes的隐藏属性功能来控制,使用当公式为真是隐藏,然后靠公式来控制具体怎样隐藏.比如可以在对话筐上放一个对话筐列表,里面放十个选项,当用户选择了其中的某几个选项时,响应的在下面的表单部分显示几行.这可以画一个表格,这个表格的属性中设置边框的线条粗细为零.然后对应十个选项分为十行,每行填入和选项响应的内容,然后选定某一行的所有文本,编辑其隐藏属性,选当公式为真时隐藏,这个公式您就可以写成当选项的被选中条目中不包含本行文字时隐藏就可以了,这样这一行就会在响应的选项被选中时才会显示.
七.如何将查询结果放到一个文件夹里?
下面是将搜索结果放到名叫newfolder的文件夹中,并跳转到该文件夹上
SubClick(SourceAsButton)
dimuiwasnewnotesuiworkspace
dimuidocasnotesuidocument
dimdocasnotesdocument
setuidoc=uiw.currentdocument
setdoc=uidoc.document
dimssasnewnotessession
dimdbasnotesdatabase
setdb=ss.currentdatabase
constnewfolder="文件夹名称"
DimdocsAsnotesdocumentcollection
q=doc.query(0)
Setdocs=db.ftsearch(q,0)
Calldocs.PutAllInFolder(newfolder)
Calluiw.OpenDatabase(,,newfolder)
EndSub
八.如何在Notes中调用ODBC数据源中的进程?
DimsessionAsNewNotesSession
DimconAsNewODBCConnection
DimqryAsNewODBCQuery
DimresultAsNewODBCResultSet
Setqry.Connection=con
Setresult.Query=qry
con.ConnectTo(资料库)
qry.SQL=SELECT*FROM资料库
result.Execute
Ifresult.IsResultSetAvailableThen
Do
result.NextRow
id=result.GetValue(ID,id)
LoopUntilresult.IsEndOfData
result.Close(DB_CLOSE)
Else
Messagebox"CannotgetresultsetforAssetData"
ExitSub
EndIf
con.Disconnect
EndSub
九.获得当前视图中选择了的文档?
可以用Notesdatabase的Unprocesseddocuments属性。
DimsessionAsNewnotessession
DimdbAsnotesdatabase
DimcollectionAsnotesdocumentcollection
Setdb=session.currentdatabase
Setcollection=db.UnprocessedDocuments
Unprocesseddocuments其实很有用的
一十.notes和Excel交换数据
DimsessionAsNewNotesSession
DimdbAsNotesDatabase
DimviewAsNotesView
DimdocAsNotesDocument
DimexcelApplicationAsVariant
DimexcelWorkbookAsVariant
DimexcelSheetAsVariant
DimiAsInteger
SetexcelApplication=CreateObject(Excel.Application)
excelApplication.Visible=True
SetexcelWorkbook=excelApplication.Workbooks.Add
SetexcelSheet=excelWorkbook.Worksheets(Sheet1)
excelSheet.Cells(1,1).Value=姓名
excelSheet.Cells(1,2).Value=年龄
i=1
Setdb=session.CurrentDatabase
Setview=db.GetView(abc)
Setdoc=view.GetFirstDocument
WhileNot(docIsNothing)
i=i+1
excelSheet.Cells(i,1).Value=doc.ClassCategories(0)
excelSheet.Cells(i,2).Value=doc.Subject(0)
Setdoc=view.GetNextDocument(doc)
Wend
excelSheet.Columns(A:
B).Select
excelSheet.Columns(A:
B).EntireColumn.AutoFit
excelWorkbook.SaveAs(Script内容)
excelApplication.Quit
SetexcelApplication=Nothing
一十一.在视图中怎样历遍所有的文档?
DimdbAsNewNotesDatabase(Ankara,current\projects.nsf)
DimviewAsNotesView
DimdocAsNotesDocument
Setview=db.GetView(Open\ByDueDate)
Setdoc=view.GetFirstDocument
WhileNot(docIsNothing)
....................
Setdoc=view.GetNextDocument(doc)
Wend
一十二.在scipt中如何调用公式
例如我们想要取服务器名的普通名,在script中用@name(),假设server变量以取到服务器名称在script中用Evaluate可以运行公式,如:
servername=Evaluate(@name([CN];server))
一十三.notes同关系型数据库比较
关系型数据库LotusNotes
基于事务处理模型基于文档型
使用结构化数据使用半结构数据元素(丰富文本,图片,等)
提供实时访问数据使用复制来增加或减少文档(按修改)
使用特别的queiries定位数据使用视图定位数据
集中在一个企业内部在企业与企业间
使用SQL来访问使用全文检索来访问
一十四.如何做一个动态的windowstitle?
在表单中的windowstitle的事件中写入一个公式,如想按用户的名字变,写上@username就ok了!
要想按域变,写上域名就ok.
一十五.怎样做到关键字能自动增、减?
在关键字属性中,选用公式,然后输入公式,公式用@dbcolumn函数返回视图中的值,这时就能做到关键字能自动增、减,不过有没有用的关键字。
一十六.各种域类型区别介绍?
域类型何时变化
计算型当文档创建,存盘,刷新时计算,并保存在文档中
显示时计算当文档打开编辑,读或刷新时计算,不保存在文档中
创建时计算当文档被创建时,仅此计算一次,并保存在文档中。
一十七.如果让用户必须填一些域,否则不准保存?
@假设该域为name;在该Name域的inputvalidation的事件中写入下列公式:
@if(name="";@failure("pleaseinputyourname");@success)
一十八.公式学习:
变量
变量有两种类型:
域,临时变量,你可以在公式中使用域名作为变量如:
FirstName
临时变量只能存在于公式中。
它的作用范围就是它所在的公式,除了在公式中赋予给它的属性以外没有其他属性。
创建一个临时变量的语法是:
variableName:
=value
常量
常量类型描述
文本型用""标记的字符集,如:
"joe.",注意:
为了在文本串中用引号,用转义符"\",如:
\""
数字型数字0-9,能用(+和-),科学记数法和常量e
时间型任何时间型的常量用([]),如:
[98-2-31]
操作符
操作符类型
符号
例子
赋值
:
=
Areacode:
=@left(phone;3)
计算
乘号*除号/加号+减号
UnitPrice*3TotalPrice/qtyTotalPrice+TaxTotalPrice-Discount
比较
等于=不等于!
==!
<>;>;<小于<小于等于<=大于>;大于等于>;=
SELECTYear=1996SELECTMonth!
="January"SELECTAge<70SELECTYear<=1990SELECTAge>;30SELECTAge>;=21
串联
列表:
文本+
"Tricycle":
"Mini-bike":
"5-speed"CompanyName+",inc."
逻辑
否!
于&或|
Status="Approved"&TargetMarket!
="Children"
公式关键字
关键字语法
描述
例子
FIELDfieldname:
=value
赋一个值给当前notes文档中的域,如果域不存在则创建一个,存在则覆盖该值。
FIELDCompanyName:
=Company+"。
inc"
REM["remarks"]
注释
REM"12/15/95"
SELECTlogicalValue
在视图,代理或复制公式中用来定义一个文档集
SELECTform="idea"
字符串处理函数介绍?
函数
描述
@propercase(string)
将字符串中的单词转换成字首大写的形式:
每个单词的头一个字母大写,后面的其他字母小写。
以下的样例将返回EveryChildLovesToys.@ProperCase("everyCHILDLOvestoys")
@trim(strin)
从文本字符串中(或文本列表的每一个元素中)删除位于开头和结尾的空格,同时还删除多余的空格。
以下的样例将返回ROBERTSMITH。
@Trim(@UpperCase("RobertSmith"))
@length(string)
返回文本字符串中字符的个数.该样例返回45。
@Length("Theboycrossedthewide,butgentle,stream.")
@newline
在文本字符串中插入一个新行(回车)。
下面公式返回HiThere"Hi"+@NewLine+"There"
@matches(string;pattern)
用一个样本字符串去匹配一个字符串。
因为样本字符串可以包含一定数量的通配符和逻辑符号,所以可以用较复杂的模式去匹配字符串。
该样例返回0。
@Matches("Abigtest";"a?
test")
@left
从左到右搜索字符串,并返回字符串中最左边的几个字符。
该样例返回"Len"。
@Left("LennardWallace";3)
逻辑操作
函数
操作
@if
@if(condition1;action1;condition2;action2;else-action)
如果满足条件1,则做action1,如果满足条件2,则做action2,否则做else-action.
注意:
1.该函数必须有奇数个参数。
2.总共可以加99个条件
3.可以嵌套
日期操作
函数
描述
@created
返回创建此文档时的时间-日期值。
@adjust(time-date;year;month;day;hour;month;day;hour;minute;second)
按照指定的年、月、日、小时、分钟、秒来调整指定的时间-日期值。
调整的值可正可负。
以下的样例将返回09/2/97。
@adjust([06/30/95];2;2;2;0;0;0)
@today
返回当天的日期。
@month(time-date)
从指定的时间-日期中提取月份值
该样例返回1。
@Month([1/15/88])
@Weekday(time-date)
算出一周中的某一天,返回一个表示这一天的数字。
下面样例返回5(实际是星期六)。
Weekday([9/29/88])
@tomorrow
返回明天日期的时间-日期值。
算术操作
函数
描述
@Max(number;number)
给出两个数字,返回较大的那个数字。
下面样例返回99;6;7;8
@Max(99:
2:
3;5:
6:
7:
8)
@Max(number;number)
给定两个数字,返回较小的那一个。
以下的样例将返回5;2;3;3
@Min(99:
2:
3;5:
6:
7:
8)
@Round(number)
将指定的数字归整,结果为最接近它的一个数
该样例返回1
@Round(1.499)
@Round(number;factor)
如果还指定了另外一个数字,就用它作为规整因子
如果称做NumberOfEmployees的域值是12338,则该样例返回12340
@Round(NumberOfEmployees;10)
@Sum(num;num;..)
在一组数字或数字列表中进行加法运算。
以下的样例将返回3
@Sum(1:
2)
列表操作
函数
描述
@Elements(list)
计算列表中文本、数字、时间-日期的个数。
该函数总是返回数字以指明在列表中项目的个数。
如果SalesForce域中的列表是"Rogers":
"Binney":
"Harris":
"Larson",则以下的样例将返回4。
"@Elements(SalesForce)
@Max(list;list)
给出两个数字列表,返回较大的那个数字列表。
@Member(value;stringlist)
给定一个值,在文本列表中找到该值的位置。
下面样例返回0。
@Member("Sales";"Finance":
"Service":
"Legal")"
@Subset(list;number)
从左到右搜索一个列,并返回您所指定数量的值。
如果您指定了一个负数,@Subset将从右到左搜索,但结果却是按从头到尾的次序排列。
以下的样例将返回NewOrleans;London。
@Subset("NewOrleans":
"London":
"Frankfurt":
"Tokyo";2)
数据转换
函数
描述
@Text(value)
将任意值转换成文本字符串。
如:
@text(RetailPrice)
@TexttoNumber(string)
在可能的情况下,将文本字符串转换成数字。
如:
@texttonumber("32.95")
特殊函数
函数
描述
@Username
返回当前的用户名或服务器名。
如果用户名是层次结构名,@UserName将以规范格式返回(其中包含CN、OU、O和C标识符)。
如果如果要返回缩写格式的名字(忽略标识符),请使用@V3UserName。
@name([action];name)
用来裁剪层次结构名。
可以用它将标准格式的名称进行缩写,将缩写名称扩展为它的标准格式,在名称中找到某一个部分,掉转部件的顺序以便用层次名称为一个视图分类。
如:
@Name([CN];Author)
@AllChildren
包含父文档的所有满足
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lotus 笔记