把视图放进对话框

大家好,才是真的好。

要是我没记错的,我们很久没有说到开发的话题了,尤其是关于lotusscript代码功能的问题。

今天我们讲一个非常实用的小功能。即在对话框当中显示一个视图,然后从该视图选择单个或多个文档,并把选中的文档中的某些字段值,返回到当前编辑的文档当中。

说起来很拗口,其实就是一件事情,选择对话框。

以前我们讲过很多对话框,例如内置的、进度条的、自定义外观的,但没有讲到里面的选项是怎么来的,本篇就讲对话框里加载视图,效果差不多是如下图样子:
在这里插入图片描述
要实现该功能,你首先建一个表单,例如叫“对话框应用”,只有两个字段类别和项目,然后创建一个按钮,名字叫"选择类别和项目",如下图所示:
在这里插入图片描述
接着你可以建一个视图,对应上面这个表单。里面有两个列,分别是类别和项目,效果如下图所示:
在这里插入图片描述
做好之后,可以尝试录入几条测试数据。

回到“对话框应用”表单里,点击"选择类别和项目"按钮,将下列代码写到该按钮的Click事件中:

Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession	
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim agent As NotesAgent
	Dim uidoc As NotesUIDocument
	Dim maindoc As NotesDocument 

	Set db = session.CurrentDatabase
	Set uidoc = Workspace.CurrentDocument
	Set maindoc = uidoc.Document

	Set col = workspace.PickListCollection(1, False, db.Server, db.FilePath, "allitems", db.Title &  "- 编辑信息",  "请从视图中选择一个文档")
	If col Is Nothing Then Exit Sub
	Set doc = col.GetFirstDocument
	If doc Is Nothing Then Exit Sub

	Call uidoc.FieldSetText("flditem",doc.item(0))
	Call uidoc.FieldSetText("fldtype",doc.type(0))

	Call uidoc.refresh(False,True)

效果如下:
在这里插入图片描述
其实就是用到了LotusScript的前台类NotesUIWorkspace中的PickListCollection方法,这个方法允许我们将视图加载到对话框中。

于是问题又来了,弹出的视图对话框,能否带有搜索功能?毕竟,一个视图里面的数据可能成百上千。

我的答案是默认没有可搜索的对话框,也不支持通过视图的搜索功能来实现。

但隐藏着一个搜索功能,就是在对话框中直接输入文本文字来进行搜索,如下图所示:
在这里插入图片描述
如果这个答案不满意,那么还有一个可行的思路,就是使用文件夹来进行搜索,需要写代码将符合条件的文档移入到文件夹中。

不过,我们建议你还是先等等,毕竟这个问题已经有很多人提出来了,而HCL官方的回复是,已经计划在Notes/Domino产品中实施,如下图所示:
在这里插入图片描述
该篇和解答粉丝提问有关,特意写在这里。

今天我们就介绍到这里吧。

最后欢迎搜索公众号“协作者”来关注我。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值