Прежде всего, вы должны знать, что существует максимальное количество атрибутов, которые можно загрузить в представление. Вы можете проверить эту тему для получения дополнительной информации о максимальных столбцах: https://www.ibm.com/developerworks/community/forums/html/topic?id=1861480b-7aa0-43b2-bf77-be677f5f778e
Теперь о том, как это сделать. Если вы ищете автоматизированное решение с использованием DXL, вот пример кода, который вы можете изменить для своих целей. Текущий код добавит атрибуты уровня объекта, которые не являются системными атрибутами, к текущему представлению модуля, из которого вы запускаете этот код.
AttrDef ad
Module m = current Module
string sAttrName
int count = 0
Column col
for col in m do {count++}
for ad in m do
{
if ((ad.object) && (!ad.system))
{
sAttrName = ad.name
col = insert (column count)
attribute(col, sAttrName)
width(col, 200)
count++
}
}
Примечание. Этот код будет генерировать только представление со всеми атрибутами в модуле, из которого он запущен, он не будет проходить через все модули в проекте или сохранять представление.
Чтобы провести oop через проект и получить все модули, вам нужно создать рекурсивную функцию, используя для itemRef in folder do {...}
. Что-то вроде следующего:
Folder f = current Folder
void recurseFolder(Folder f)
{
Item iRef
for iRef in f do
{
if (type(iRef) == "Formal")
(call your create views function here with parameter iRef)
else if (type(iRef) == "Folder" || type(iRef) == "Project")
recurseFolder(folder(iRef))
}
}
recurseFolder(f)
И затем, если вам нужен дополнительный код для сохранения представления, вам придется добавить соответствующий код для этого тоже с помощью save(View v)
. Вы можете найти дополнительную информацию, касающуюся настройки параметров просмотра и сохранения их, в Справочном руководстве по DXL.