Показать сообщение отдельно
Старый 25.09.2014, 13:24   #32  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Ruff Посмотреть сообщение
В порядке страдания ерундой
1. Создаем EDT DimDescription (массив той же размерности, что и Dimension).
...
Угу. Я примерно то же самое предложил бы, ну разве что, без временной таблицы и дисплейный метод на той таблице, где поле Dimension.

X++:
// Метод на той таблице, где поле Dimension
//BP Deviation documented
display DimDescription getDimDescription()
{
    DimDescription	dimDescription;
    int                 idx;
    FieldId             dimFieldId;
    ;

    for (idx = 1; idx <= dimof(this.dimDescription); idx++)
    {
        dimDescription[idx] = Dimensions::find(Dimensions::arrayIdx2Code(idx), this.Dimension[idx]).Description;
    }
    return dimDescription;
}
Далее создаем группу полей на этой же таблице, добавляем в нее этот дисплейный метод и выводим эту группу полей на форме справа от группы полей с полем Dimension.


Другой вариант - это создать поле на основе DimDescription в той же таблице, где и Dimension. Собственно, стандартный способ решения, когда требуется код и его расшифровка. Код клиента - Название клиента, Код номенклатуры - Название номенклатуры и т.д., и т.п.

Ну, а то, что после изменения кода надо менять (обновлять) расшифровку, так опять же, стандартное поведение. Для Dimension можно "не мелочиться" и обновлять все аналитики при изменении одного. Тогда не теряется универсальность.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...