Итерация по любой таблице
Я только начал новую работу, где они используют динамик топор 2009 года. Я новичок в этой технологии.
Есть ли способ в x++ для перебора любой таблицы? Я не знаю, откуда берутся данные, их длина и количество полей.
Я имею в виду, что мне нужна функция, которая будет вести себя так
void convert(Table anyTable)
{
int i=0;
int k=0;
;
for(i; i < anyTable.Lenght; i++)
{
for(k; k < anyTable[i].Count; k++)
{
//some xml processing
}
}
}
(Под таблицей я имею в виду своего рода родителя всех таблиц). И это в основном мой вопрос - есть ли родитель всех таблиц или что-то в этом роде, что может помочь мне достичь чего-то подобного?
Прошу прощения за форматирование, я набираю это с мобильного устройства
3 ответа
Common
Таблица является базовым классом для всех таблиц. Он не содержит никаких данных. Он в основном используется в коде X++ для ссылки на любую таблицу полиморфным способом. пожалуйста, проверьте Dictionary
классы для решения вашей проблемы:
void convert(Common _common)
{
DictTable dictTable;
FieldId fieldId;
anytype value;
;
dictTable = new dictTable(_common.TableId);
if (dictTable)
{
while select _common
{
fieldId = dictTable.fieldNext(0);
while (fieldId)
{
value = _common.(fieldId);
//do processing
fieldId = dictTable.fieldNext(fieldId);
}
}
}
}
Смотрите этот ответ. Это предполагает использование класса Dictionary
а также DictTable
для размышления.
Проверьте метод xml() в классе Common, он может помочь сгенерировать ваш XML, представляющий текущую запись.