С# Как получить свойства поля (тип поля, значение по умолчанию, формула,..) в Lotus Notes с помощью Interop.Domino.dll

72
10

Я работаю с Lotus Notes using Interop.Domino.dll библиотеки using Interop.Domino.dll, но я не знаю, как получить свойства поля (включая тип поля, значение по умолчанию,...).

спросил(а) 2016-02-11T19:29:00+03:00 4 года, 8 месяцев назад
1
Решение
70

Существует класс NotesForm, и вы можете получить от него имена полей, но для представления поля и его атрибутов нет класса. Вам нужно будет использовать класс NotesDXLExporter, чтобы получить представление XML формы и проанализировать XML, чтобы получить свойства поля.

И вам, вероятно, лучше идти с DXL для любой информации, необходимой вам о элементах дизайна, так или иначе, потому что есть известные проблемы с классами interop, которые представляют коллекции элементов deisgn при работе на 64-битной Windows, которая официально не поддерживается IBM,

ответил(а) 2016-02-11T23:29:00+03:00 4 года, 8 месяцев назад
41

Как уже упоминал Ричард. Используйте DXLExporter

var exporter = lnSession.CreateDXLExporter();
exporter.OutputDOCTYPE = false; //shortens the XML a bit

а затем экспортировать NotesDocument в XML-представление.

var xml = new XmlDocument();
String s = exporter.Export(notesDocument);

//remove the namespace for easier XPATH
s = s.Replace(" xmlns='http://www.lotus.com/dxl'", "");
xml.LoadXml(s);

В XML есть элементы примечаний fe:

<item name='$CSVersion'><text>2</text></item>
<item name='StartDate'><datetime>20160323</datetime></item>

как вы можете видеть, для работы есть, по крайней мере, базовая информация о типе.

Если у вас есть отсортированные имена и типы, вы можете получить элемент с

notesDocument.GetFirstItem(itemName); //return NotesItem

или значение непосредственно с

notesDocument.GetItemValue(itemName);

который вернет объект, который вы можете впоследствии направить на нужный тип.

ответил(а) 2016-03-24T13:23:00+03:00 4 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема