Таблица

Материал из ODANT Wiki
Перейти к: навигация, поиск

Таблица это определенный тип поля классе, который подразумевает набор строк. Для того, чтобы сделать таблицу, необходимо атрибут поля "Табличнное" становить "True".

Работа с таблицей программно

Таблица - это по сути набор XML элементов с одинаковыми именами, расположенными на одном уровне (см. XML объекта с заполненной таблицей).

Поэтому самый простой способ работать с ними как с XML элементами, можно с помощью DOM, можно с помощью XQuery (2 быстрее).

Есть еще способ через DataField.

Пример 1

# Код: csharp [Выделить] 
12345678 DataField table_field = Object.DataFields[TableFieldName] as DataField;foreach(xmlElement el in   
Object.Root.SelectNodes(TableFieldName)){    table_field.TabRoot = el;  // Получили  текущую запись и установили на нее контекст табличного   поля    
foreach(DataField field in  table_field.DataFields)        field.Value = "Вася";}//Заполнили все поля во всех строках значением "Вася" 
В данном примере нужно понимать, что table_field - Это сама таблица в целом, выраженная в сиде поля (см. объектную модель)


Пример 2


# Код: csharp [Выделить]
1234567 Field table_field = Object.Fields[TableFieldName] as Field;foreach(xmlElement el in Object.Root.SelectNodes(TableFieldName)){     
foreach(Field field in  table_field.Fields)       el.SetAttribute(field.Name, "Вася")}//Заполнили все поля во всех строках значением "Вася" 
результат тот-же скорость раза в 2 быстрее


Пример 3

# Код: csharp [Выделить]
1234 string xq = "for $a in OBJECT/TableFieldName return insert nodes (attribute f1 {'Вася'}, 
(attribute f2 {'Вася'}, (attribute f3 {'Вася'}, (attribute f4 {'Вася'} )";Object.XQuery(xq );//Заполнили все поля во всех строках значением "Вася" 
результат тот-же скорость раз в 100  быстрее