问题描述
假设有一个视图,前两列做了分类排序部门性别姓名年龄人事部男张三29李一30女刘五24财务部女赵一25马七29使用以下代码DimsessionAsNewNotesSessionDimdbAsNotesDatabaseDimviewAsNotesViewDimdocsAsNotesDocumentCollectionDimDeptInfo(1To2)AsVariantSetdb=session.CurrentDatabaseSetview=db.GetView("person")DeptInfo(1)="人事部"DeptInfo(2)=""Setdocs=namesdbview.GetAllDocumentsByKey(DeptInfo,False)Msgboxdocs.Count这时候的结果为2。我只有将DeptINfo(2)分别赋值“男”和“女”才能得到该部门的总人数。请问,如何才能在不改变视图的情况下获得一个部门的总人数呢?
解决方案
解决方案二:
补充视图的结构
解决方案三:
GetAllDocumentByKey:Findsdocumentsbasedontheircolumnvalueswithinaview.Youcreateanarrayofkeys,whereeachkeycorrespondstoavalueinasortedcolumnintheview.Themethodreturnsalldocumentswhosecolumnvaluesmatcheachkeyinthearray.这是方法的解释,你就把第一列作为key来试试,舍弃第二列.
解决方案四:
该回复于2009-06-01 15:34:47被版主删除
解决方案五:
引用2楼SYTB06042的回复:
GetAllDocumentByKey:Findsdocumentsbasedontheircolumnvalueswithinaview.Youcreateanarrayofkeys,whereeachkeycorrespondstoavalueinasortedcolumnintheview.Themethodreturnsalldocumentswhosecolumnvaluesmatcheachkeyinthearray.这是方法的解释,你就把第一列作为key来试试,舍弃第二列.
一开始就是直接使用第一列的(不指定第二列),如下Setdocs=namesdbview.GetAllDocumentsByKey(“人事部”,False)但只能返回数值2
解决方案六:
你再增加一个视图,把第二列不做分类排序,不就可以了?
解决方案七:
按我们使用的编程规范来说,你这是显示视图.如果要取数据的话,一般自己另外再做个视图就可以了,何必要在同一个视图里面操作呢?
解决方案八:
引用6楼rosemerry的回复:
按我们使用的编程规范来说,你这是显示视图.如果要取数据的话,一般自己另外再做个视图就可以了,何必要在同一个视图里面操作呢?
如果可以变视图,我早就变了。所以我才说“在不改变视图的情况下”。麻烦大家还是针对这个函数指教一下吧
解决方案九:
那就不用视图就可以了嘛,用search一样可以达到效果啊
解决方案十:
rosemerry正解setdc=db.Search({("你的那个视图选择条件")&(部门="人事部")},nothing,0)
解决方案十一:
或者用evaluate()来调用函数,方法很多