大家好,才是真的好。
最近用AI写了点LotusScript,表面上强烈地感受到它的工作能力很好很强大,周到又心细。但一运行,全是报错,因为里面用了不少AI自己编写(幻觉)的属性或方法,例如我们在Lotussscript中常用的NotesView(Notes视图)对象,它居然能使用NotesView.AllDocuments这个属性来获取视图中的所有文档。
众所周知,NotesView对象没有属性AllDocuments,倒是有个AllEntires,但这不是文档,严谨地来说,是视图中的所有条目。要是想从View对象中获取文档,通常使用GetAllDocumentsByKey或GetDocumentByKey,而Key就是视图中的关键字。
如果我们要从视图中获取所有的文档,这里有一个巧办法,在需要的视图中,在最前面插入一个列,列的宽度设置为1个像素,它的值可以设置为“ x”类似,就是x前面加5个空格,其实你加一个空格也可以,空格可以让这个列不显示任何文本信息,视图如下图所示:
然后该列设置为排序,接着我们写代码的时候使用Set coll = view.GetAllDocumentsByKey(" x", True)就可以获取所有的文档,完整的代码如下:
Dim s As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim coll As NotesDocumentCollection Set db=s.CurrentDatabase Set view = db.GetView("testView") Set coll = view.GetAllDocumentsByKey(" x", True) Msgbox coll.Count效果如下图:
这样我们就可以通过notesview对象来获取所有的文档了。
当然,你可能会说为了醋包了盘饺子,我还得建一个视图,还得加列?
其实,你也不必新建视图,完全可以在已有的视图中的最前面加个列,值设置为“ x”或“ y”之类,然后将列隐藏起来,再通过上述方式获取。
工作量不大,而且也很简单。
最后提示一下,现阶段,别全靠AI,里面的代码还得改不少,简单的它的确可以写,但你也需要集中注意力来修改。
今天就介绍到这里。
最后欢迎搜索公众号“协作者”来关注我。