关于GetAllDocumentsByKey的问题
假设有一个视图,前两列做了分类排序部门 性别 姓名 年龄
人事部
男
张三 29
李一 30
女
刘五 24
财务部
女
赵一 25
马七 29
使用以下代码
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim docs As NotesDocumentCollection
Dim DeptInfo(1 To 2) As Variant
Set db = session.CurrentDatabase
Set view = db.GetView( "person" )
DeptInfo(1) = "人事部"
DeptInfo(2) = ""
Set docs = namesdbview.GetAllDocumentsByKey(DeptInfo,False)
Msgbox docs.Count
这时候的结果为2。
我只有将DeptINfo(2)分别赋值“男”和“女”才能得到该部门的总人数。
请问,如何才能在不改变视图的情况下获得一个部门的总人数呢? --------------------编程问答-------------------- 补充视图的结构
--------------------编程问答-------------------- GetAllDocumentByKey:
Finds documents based on their column values within a view. You create an array of keys, where each key corresponds to a value in a sorted column in the view. The method returns all documents whose column values match each key in the array.
这是方法的解释,你就把第一列作为key来试试,舍弃第二列. --------------------编程问答-------------------- --------------------编程问答--------------------
一开始就是直接使用第一列的(不指定第二列),如下
Set docs = namesdbview.GetAllDocumentsByKey(“人事部”,False)
但只能返回数值2 --------------------编程问答-------------------- 你再增加一个视图,把第二列不做分类排序,不就可以了? --------------------编程问答-------------------- 按我们使用的编程规范来说,你这是显示视图.如果要取数据的话,一般自己另外再做个视图就可以了,何必要在同一个视图里面操作呢? --------------------编程问答--------------------
如果可以变视图,我早就变了。所以我才说“在不改变视图的情况下”。麻烦大家还是针对这个函数指教一下吧 --------------------编程问答-------------------- 那就不用视图就可以了嘛,用search一样可以达到效果啊 --------------------编程问答-------------------- rosemerry 正解
set dc=db.Search({("你的那个视图选择条件") & (部门="人事部")},nothing,0) --------------------编程问答-------------------- 或者用evaluate()来调用函数,方法很多
补充:企业软件 , Lotus