45. NotesViewNavigator用途之二——获取列表字段的选项

在LotusScript中,NotesViewNavigator在处理复杂联动菜单时能发挥关键作用。当视图的列因分类导致@DbLookup无法获取所有选项时,可以使用NotesViewNavigator有效地获取列表框字段的分类选项,避免创建额外的视图,从而节省数据库资源。这种方法在处理大量文档和超过@DbLookup返回限制的场景下尤其有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NotesViewNavigator在Notes对象里常常被忽视,平常的开发实践中似乎只需要NotesView,NotesDocument最多加上NotesViewEntry的组合就够了。不过,有些场合它却可以发挥难以替代的作用。在23. 在LotusScript中利用视图的合计功能求和里我们已经看到一个例子,这里继续说明另一个实例。
联动菜单,一个列表框(姑且称为二级列表框)的选项跟随另一个列表框(一级列表框)的选中项变化。在Notes里实现这样的功能很简单以至可以成为典型,不论是在客户端还是Web开发中。列表框的选项如果不是静态的,往往使用视图里的数据。一级列表框的选项使用@DbColumn,二级列表框则使用@DbLookup,如:

@DbLookup("":"";"";"vhForReport";OfficeCode;2);

其中vhForReport为第一列按照“办公室代码”字段分类的视图;OfficeCode为一级列表框的域值,即对应于视图的“办公室代码”字段;视图的第二列为“年份”值,用于二级列表框Year字段的选项。

但是有一些更复杂的情况,这样简单的公式不幸失效了。假定用于获得选项值的列,也就是上面的第二列因为某种需要也是分类的,@DbLookup公式返回的值就只有这一列的第一个类别(值的个数就等于第一个类别所包含的文档数,如果还有第三列分类,则值的个数等于更细分的第三个分类列的第一个类别所包含的文档数)。按照IBM网站上的说法,这不是bug,而是@DbLookup设计成就是这样。无论这样有没有道理,我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值