【发布时间】:2016-02-09 09:05:10
【问题描述】:
是否有任何简单的方法可以创建包含表单中所有可用字段的视图?
我有一个包含 100 多个字段的表单,创建包含所有字段的视图将花费太多时间。目的是在视图中导出数据。
【问题讨论】:
标签: lotus-notes lotus-domino lotus
是否有任何简单的方法可以创建包含表单中所有可用字段的视图?
我有一个包含 100 多个字段的表单,创建包含所有字段的视图将花费太多时间。目的是在视图中导出数据。
【问题讨论】:
标签: lotus-notes lotus-domino lotus
您可以使用NotesDatabase.CreateView 方法创建View,并使用NotesView.CreateColumn 为该View 创建列。 Form 中所有字段的列表可以从NotesForm.Fields 属性中获取。 Form 本身可以从 NotesDatabase.GetForm 方法中获得。
这是一个例子:
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim form As NotesForm
Dim view As NotesView
Set db = ses.CurrentDatabase
formName$ = "YourFormName"
Set form = db.GetForm(formName$)
Set view = db.CreateView(formName$ & "Fields", {Form = "} & formName$ & {"})
Forall field In form.Fields
Call view.CreateColumn(, field, field)
End Forall
【讨论】:
Arrayunique 删除重复项:fields = Arrayunique(form.Fields) : Forall field In fields : Call view.CreateColumn(, field, field) : End Forall。
Computed for Display 字段甚至Computed Subform 字段。
您可以打开使用表单创建的文档并遍历 NotesItems。在那里您可以获取字段名称。
代码可能如下所示:
Dim field List As String
Forall i in doc.Items
field(i.Name) = i.Text
End Forall
您现在有一个列表,其中包含作为值的字段的文本表示形式和作为列表标签的字段名称。
或者您可以在每个文档上执行此操作,然后像这样导出所有值。创建一个有 100 列的视图会创建一个巨大的视图索引。不是个好主意。
【讨论】:
也许你可以使用
读取视图条目 使用此命令可以访问 XML 形式的视图数据,而无需外观属性,例如字体、列表分隔符、日期格式、HTML 设置、视图模板和框架重定向。 语法:
http://Host/Database/ViewName?ReadViewEntries
链接:http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/
【讨论】: