2016-02-09 4 views
2

Есть ли простой способ создать представление со всеми доступными полями из формы?Показать все поля из формы в представлении в Lotus Script или Lotus Formula

У меня есть форма с более чем 100 полями, и для создания представления со всеми полями потребуется слишком много времени. Цель состоит в том, чтобы экспортировать данные, когда они находятся в представлении.

ответ

3

Вы можете создать View с помощью метода NotesDatabase.CreateView и создать столбцы для этого View с помощью NotesView.CreateColumn. Список всех полей в 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 
+0

Спасибо, это сделало более или менее трюк. Только один вопрос, хотя, он проходит через штраф, но я получаю дубликаты столбцов. Похоже, что когда он достигает дна, он продолжается с вершины снова, но не на всю форму. Любая идея, почему это так? – CinNL1

+0

Проблема с этим подходом заключается в том, что представления представляют содержимое элементов в документах, которые могут не совпадать с полями в Форме, используемыми для создания и/или отображения документов. Вычисляемые поля для отображения не будут отображаться в документах, а элементы, не входящие в форму, могут быть добавлены кодом в форме или агентах. – Newbs

+0

@ CinNL1 Что-то не так с вашим кодом. Вы можете попытаться использовать 'Arrayunique' для удаления дубликатов:' fields = Arrayunique (form.Fields): поле Forall В полях: Call view.CreateColumn (, field, field): End Forall'. – nempoBu4

0

Может быть вы могли бы использовать

ReadViewEntries Используйте эту команду, чтобы просмотреть доступ к данным в виде XML без появления атрибутов, таких как шрифты, список разделителей, форматы даты, настройки HTML, просмотр шаблоны и каркасных перенаправления. Синтаксис:

http://Host/Database/ViewName?ReadViewEntries 

Ссылка: http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/

1

Вы можете открыть документ, созданный с формой и перебирать Копание в NotesItems. Там вы можете получить имена полей.

Код может выглядеть примерно так:

Dim field List As String 

Forall i in doc.Items 
    field(i.Name) = i.Text 
End Forall 

Теперь у вас есть список, содержащий текстовое представление поля в качестве значения и имя поля в списке тегов.

Или вы можете сделать это на каждом документе и экспортировать все значения, подобные этому. Создание представления со 100 столбцами создаст огромный индекс представления. Не очень хорошая идея.

+1

Но обратите внимание: речь идет о всех полях на форме, а также список всех полей в документе не то же самое. –

+0

Это, конечно, так. Затем CinNL1 может перебирать все документы и делать то же самое, добавлять имена полей в глобальный список. –

Смежные вопросы