Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Получить ячейку состава изделия, Как добраться до ячейки состава изделия
 
Необходимо с помощью API добраться до определенной ячейки состава изделия в документе (например, с заданным именем).
Элемент структуры RowElement из документа получить легко, но непонятно, как добраться до определенной ячейки в строке. Метод GetCell требует или указать идентификатор, который неизвестен, или задать дескриптор ParameterDescriptor. Для дескриптора разные параметры пробовал задавать, но добраться до ячейки так и не смог.
Может, кто решал подобную задачу? Буду благодарен, если подскажете.
 
ainis, по умолчанию "Состав изделия" создается из файла, который расположен в ( C:\Program Files\T-FLEX CAD 17\Program\ProductStructs\Default product structure.xml ). Все колонки имею атрибут "ID", по которому можно извлекать данные ячейки, например:
Код
var columnId = new Guid("44bb724a-de07-4fd3-9882-ced1c8425057"); // идентификатор колонки: Наименование

foreach (var row in ps.GetAllRowElements())
{
    var cell = row[columnId];
    // ...
}
Изменено: vite - 29.12.2021 10:29:36
T-FLEX CAD 17.1.21.0
 
Цитата
vite написал:
ainis, по умолчанию "Состав изделия" создается из файла, который расположен в ( C:\Program Files\T-FLEX CAD 17\Program\ProductStructs\Default product structure.xml ). Все колонки имею атрибут "ID", по которому можно извлекать данные ячейки, например:
Код
 var columnId = new Guid("44bb724a-de07-4fd3-9882-ced1c8425057"); // идентификатор колонки: Наименование

foreach (var row in ps.GetAllRowElements())
{
    var cell = row[columnId];
    // ...
}
 
Огромное спасибо!
 
А можно как-нибудь добраться до ячейки с помощью дескриптора ParameterDescriptor, не задавая его GUID? Я пробовал задавать только имя (Name) или SynonymName для дескриптора, однако не вышло получить ячейку, точнее, ее текстовое значение.
 
Цитата
ainis написал:
А можно как-нибудь добраться до ячейки с помощью дескриптора ParameterDescriptor, не задавая его GUID?
Можно последовательно перебрать дескрипторы в цикле, например:
Код
var scheme = ps.GetScheme();
foreach (ParameterDescriptor descriptor in scheme.Parameters)
{
    foreach (RowElement row in ps.GetAllRowElements())
    {
        var cell = row[descriptor];

        // последующая обработка ячейки ...
    }
}
Изменено: vite - 05.05.2023 22:16:37
T-FLEX CAD 17.1.21.0
 
Не буду плодить темы, спрошу здесь. По CadReportGenerator есть справка? В справке по Open API пусто. Или это относится к "Closed Secret" API??
Страницы: 1