数据库查找问题,Lotus Notes

时间:2013-10-22 10:46:21

标签: lotus-notes lotusscript lotus-formula

我有一个场景,其中有三个字段,基于第一个字段的选择(第一个字段中的3个值),下一个字段是通过DBcolumn获取值(它是一个对话列表字段)。然后在选择第二场的基础上,第三场即将来临。所有上述字段都是对话列表字段。

问题在于多选,当从第一个字段中选择多个值时,下一个字段将在使用DBColumn时出现(由于值较小),但由于第二个字段有很多值,我们必须使用DB查找并且此处多选项不会获取相应字段的数据。

EG。我有一个名为Database的字段(有3个值),其他两个字段是Project(很多值)和Brand。

我正在使用DBColumn从数据库字段选择(多选)中获取项目字段中的值,这是我正确使用(使用@if),但在多项选择项目字段后(有很多值)我不是能够在下一个字段中获取值(使用DBLookup)。

请让我知道任何解决方法......

1 个答案:

答案 0 :(得分:1)

首先:您的代码可能有助于解决此问题,但我认为,它与代码无关:

请检查项目上的字段属性“刷新关键字更改字段”以及品牌字段上的“刷新文档刷新选项”属性。

如果在选择第二个项目时没有得到ANY值,那么检查一下,如果您的查找键正确用作DBLookup的Multiple值,并且它不会尝试查找类似“value1; value2”的内容“而不是”value1“:”value2“......

Bets练习调试这样的东西,就是有一个“BrandList”字段,Computed for Display,隐藏,其中有DBLookup:

_viw := "YourViewName";
_crit := Project;
_col := 2;
REM "Don't do lookups, if project is empty"; 
@if( _crit = "" ; @Return( "" ) ; "" ); 
_lkp := @DBLookup( "" : "NoCache" ; _viw ; _crit ; _col );
@if( @IsError( _lkp ) ; "" ; _lkp );

让品牌指向这个领域(只需使用fieldname作为Formula)。这样您就可以轻松调试返回的值。

另外:如果你不确定,你选择的每个项目都会有Brands,你需要在查找中添加[FailSilent],否则整个查找都会失败,如果找不到其中一个项目的话...... _lkp := @DBLookup( "" : "NoCache" ; _viw ; _crit ; _col; [Failsilent] );

但是:Failsilent在调试时非常糟糕,因为你永远不会收到错误消息...... AND:出于调试目的,您当然不要使用@ IsError-行,只需返回_lkp ...