Lotus notes lotus notes,搜索等于文本框的数据

Lotus notes lotus notes,搜索等于文本框的数据,lotus-notes,lotus-domino,lotusscript,lotus-formula,Lotus Notes,Lotus Domino,Lotusscript,Lotus Formula,我不明白为什么我的代码不被允许 @If(@DbLookup("":"nocache";@DbName;"GPA";1)="GPnum";@Failure(@Command([FileSave])&@Command([CloseWindow]));@Success)` 请帮帮我。多谢各位 @If(@DbLookup("":"nocache";@DbName;"GPA";1)="GPnum" 您的代码应该还有一个参数 从帮助 @DbLookup( class : cache ; serv

我不明白为什么我的代码不被允许

@If(@DbLookup("":"nocache";@DbName;"GPA";1)="GPnum";@Failure(@Command([FileSave])&@Command([CloseWindow]));@Success)`
请帮帮我。多谢各位

@If(@DbLookup("":"nocache";@DbName;"GPA";1)="GPnum"
您的代码应该还有一个参数

从帮助

@DbLookup( class : cache ; server : database ; view ; key ; fieldName ; keywords )
因此,您将“GPA”作为视图,然后需要指定希望返回的字段/列。同样对于DbLookup,我建议您使用[FAILSILENT]作为关键字,在这种情况下,您不需要检查@IsError的结果

但是,您可能只需要使用@DbColumn而不是@DbLookup

据我所知,您需要验证数据库/视图中是否存在某些值,请尝试以下代码:

@If(@DbColumn("":"NoCache";@DbName;"GPA";1)="GPnum"; @Failure(@Command([FileSave]) : @Command([CloseWindow])); @Success)

@If(@DbLookup(“:“NoCache”;@DbName;“GPA”;“GPnum”;1;[FAILSILENT]);@Failure(@Command([FileSave]):@Command([CloseWindow]);@Success)

编辑:我为保存当前文档的按钮操作添加了代码(请参见下面的作者评论)
用户在其中输入我们检查的值的可编辑字段称为GPnum。视图“GPA”按其第一列(显示GPnum值)排序

t:=@DbLookup("":"nocache";@DbName;"GPA"; GPnum ; 1 ; [FailSilent] );
@If(@IsError(t) ; @Prompt([Ok]; "DB has a problem:";@Text(t)) ;
  t = "" ; @Do(@Command([FileSave]);@Command([CloseWindow])) ;
  @Prompt([Ok] ; "unable to save" ; "The key already exists") )
原始响应

t:=@DbLookup("":"nocache";@DbName;"GPA"; @ThisValue ; 1 );
@If(@IsError(t) ; @Failure("DB has a problem:"+@Text(t)) ; t =  "" ; @Success ; @Failure("The key already exists") )
如果使用@failure/@success,则必须位于表单(验证)中的可编辑字段中。 据我所知,您检查您的值是否不存在。 因此:

首先添加@thisValue作为在DBLOOKUP中搜索的键, 如上所述,DBLOOKUP可能返回一个错误,因此检查@isError(t)
第二次失败只是阻止了表单的验证,我从未尝试过(没有意义)让它保存表单


希望有帮助

它有什么问题?这里面有很多问题。似乎你不了解失败和成功,也不了解“在做”的功能。你想要的结果是什么?[由于系统认为函数名是通知语法,因此不允许在注释中键入函数名]SAj,你知道如何检查数据库中的数据吗?并检查数据的值是否为附加值?谢谢。@LyodMichael我怀疑英语不是你的第一语言。我不明白你在问什么。如下文所述,最好是你告诉我们你想要完成什么,而不是仅仅向我们展示代码。很可能,有比这更好的方法来完成你想要完成的事情。先生,它不起作用。它说明了数据库函数中的许多参数。先生,我能问一下吗?当我保存在数据库中时,是否可能发现数据是唯一的?这是我在lotus script中的第一个应用程序,但我认为如果没有专业人员的帮助,我无法实现。单击“操作”按钮时不会发生任何事情,但当我将dblookup更改为dbcolumn时,消息会对数据库函数中的许多参数显示dblookup在没有值GPnum的情况下不会发生任何事情。对于DbColumn,u遇到了这个问题,因为DbLookup ad DbColumn有不同数量的参数,我为DbLookup ad DbColumn编写了两行不同的代码。。。如果他真的想在搜索找到匹配项时失败,那么你是对的。但他正在atFailure调用中保存当前文档,这似乎有点不对劲。在其中一条评论中,他询问检查数据库中的值是否唯一,因此,如果搜索发现非空值,我怀疑他不希望保存新文档。不过,很难说他到底想要什么。谢谢你,先生,我试试看。我给你一些更新的结果再次thx。先生,没有发生任何事情,先生,我把这个代码的行动按钮。但是@失败不适用于操作按钮!我编辑了我的回复,因为我认为我更好地理解你想做什么(我希望…你的问题不是很清楚)先生,消息框说db有问题。先生,我在第二行末尾加上“;”。“在索引中找不到条目或视图索引未生成。1-答案已编辑:你说得对,我已更正”;在第二行。现在我添加了[FAILSILENT],您将不再获得“索引中未找到的条目”,它将保存您的文档。2-t是一个时态变量
t:=@DbLookup("":"nocache";@DbName;"GPA"; @ThisValue ; 1 );
@If(@IsError(t) ; @Failure("DB has a problem:"+@Text(t)) ; t =  "" ; @Success ; @Failure("The key already exists") )