Показать сообщение отдельно
Старый 29.07.2011, 10:29   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
До кучи. Те же "куриные продукты", только в профиль. Нашёл у себя функцию (статический метод) определения значения (числа) енума по его русскому названию:
X++:
// преобразует значение метки перечисления в значение (0-250)
// например для перечисления InventType
// "Номенклатура" => 0 (ItemType::Item)
// "Услуга" => 2 (ItemType::Service)
static int enumLabel2Value( DictEnum _dictEnum, str _label )
{
    int enumValue = 255;
    int ind;
    ;
    for (ind=0; ind<_dictEnum.values(); ind++)
    {
        if ( _dictEnum.index2Label(ind) == _label )
        {
            enumValue = _dictEnum.index2Value(ind);
            break;
        }
    }
    return enumValue;
}
// пример вызова:  box::info(int2str(KKu::enumLabel2Value(new DictEnum(enumnum(ItemType)), 'Услуга')));