首页 文章

IBM Lotus Notes如何在columnvalues中指示视图列号

提问于
浏览
0

我现在正在使用C#开发一个IBM Lotus notes插件项目 .

这是我们希望通过视图列的名称从视图中获取数据的请求,例如“Date” .

我发现我可以使用“NotesView”类中的方法“GetColumn”来获取列名和其他基本信息的信息,但实际数据不包含在其中 . 要获取数据,我需要在“ViewEntry”类或“Document”类中使用“ColumnValues”属性 .

遗憾的是,关于IBM提供的技术文档,有几种情况并非所有列值都将返回 . https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_COLUMNVALUES_PROPERTY_JAVA.html

例如,GetColumn的结果是16列,第12列的名称是“Date”,它是datetime类型 . 但是在ColumnValues中,只有13列,没有列名,第8列类型是datetime,它似乎是“Date”列 .

我试图找出哪些列将被省略 . 首先,我试图在公式中捕获“仅UI功能”,但这似乎还不够 . 其次,我试图捕捉“不变”,但不是如何 . 最后我发现并非所有“常量”公式列都被删除 . 我放弃了

是否有人可以帮我指出列值中的视图列号?

2 回答

  • 0

    对于要使用的通用方法(让用户通过选择 Headers 来选择列),最好使用NotesView对象的Columns属性,然后迭代所需文档所在的视图以及所选视图列:

    • 如果 vwcol.IsField 属性为True,则返回 doc.GetItemValue(vwcol.ItemName)

    • 如果 vwcol.IsField 属性为False( vwcol.IsFormula = True),则返回 Evaluate(vwcol.Formula, doc)

  • 0

    @RichardSchwartz我用C在笔记中创建了一个菜单项,它会在外面调用真正的笔记应用程序,然后我把它们称为“插件” . IBM将LotusScript和Java作为非COM和COM(Windows技术)引入,C#和Java都通过COM支持,但由于它们提供相同的功能,Java主要在IBM上描述,没有C#docs.For C,它有Notes C开发工具包中的docs,它是一个nsf .

    我想在视图中获取值而不是查找NotesDocument中的值有两个原因:

    • 用户可见性 .
      用户无法在NotesDocument中看到项目名称(例如textbox_1),但他们可以直接在视图上看到列名称,此名称可以指示列(但不是列值) .

    • 普遍性 .
      对于不同的DB和具有相同含义的项目,不仅项目名称会有所不同,而且项目值也会不同 . 如果您在NotesDoument中查找值,那么您的程序可能只能用于1分贝 . 例如,一个DB 's docs are 376749 , and the same words shown in the view. But for another DB, the values of 376750 in one DB'中的值"Approve State"是"1,2,3",视图列的公式判断值"1,2,3",最后显示"Checked,Approved" .

相关问题