是否有任何簡單的方法來創建具有窗體中所有可用字段的視圖?在Lotus腳本或Lotus公式中顯示視圖中的窗體中的所有字段
我有一個超過100個字段的表單,並創建一個視圖,所有字段將花費太多時間。目標是在數據進入視圖後導出數據。
是否有任何簡單的方法來創建具有窗體中所有可用字段的視圖?在Lotus腳本或Lotus公式中顯示視圖中的窗體中的所有字段
我有一個超過100個字段的表單,並創建一個視圖,所有字段將花費太多時間。目標是在數據進入視圖後導出數據。
您可以使用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
也許你可以使用
ReadViewEntries 使用此命令來訪問視圖數據以XML格式,而不外觀屬性,如字體,列表分隔符,日期格式,HTML設置,視圖模板和幀重定向。 語法:
http://Host/Database/ViewName?ReadViewEntries
鏈接:http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/
您可以打開與表單創建的文檔,並遍歷thorugh的NotesItems。在那裏你可以得到字段名稱。
的代碼可能看起來是這樣的:
Dim field List As String
Forall i in doc.Items
field(i.Name) = i.Text
End Forall
您現在有一個包含字段值的文本表示和字段列表標記的名稱列表。
或者您可以在每個文檔上執行此操作並導出所有這些值。用100列創建一個視圖會創建一個巨大的視圖索引。不是一個好主意。
但請注意:這個問題是所有的表單上的字段,以及一個文檔中的所有字段列表是不一樣的。 –
這當然是對的。然後CinNL1可以遍歷所有文檔並做同樣的事情,將字段名稱添加到全局列表中。 –
謝謝,這或多或少的伎倆。只是一個問題,但它循環良好,但我得到重複列創建。看起來,當它到達底部時,它會再次從頂部繼續,但不是整個形式。任何想法,爲什麼? – CinNL1
這種方法的一個問題是,視圖呈現文檔中的項目內容,這些內容可能與用於創建和/或顯示文檔的表單上的字段不同。對於顯示字段計算的字段不會顯示在文檔上,並且表單上沒有的項目可能會被表單或代理中的代碼添加。 – Newbs
@ CinNL1你的代碼有問題。您可以嘗試使用'Arrayunique'去除重複項:'fields = Arrayunique(form.Fields):Forall field在字段中:調用view.CreateColumn(,field,field):End Forall'。 – nempoBu4