any2enum - пробовал, из int (formComboBox.selection()) не получится enum.
Решение придумал на основании похожей ветки, где нужно было из anyType получить enumId (
Как получить из элемента enum-а код типа (enum-а)?).
Не удалось придумать что-то проще, чем "закат солнца":
X++:
str strHexBigToLittleEndian(str _hexStr)
{
str ret;
int jMax = strLen(_hexStr),
j = jMax;
#DEFINE.NEXTCHAR(1)
#DEFINE.OFFSET(2)
;
while (j >= #OFFSET)
{
ret += subStr(_hexStr, j - #NEXTCHAR, #OFFSET);
j -= #OFFSET;
}
return ret;
}
X++:
anyType int2enum(enumId _enumId, int _value)
{
#DEFINE.BLOBFORMAT('07fd04\%1ff')
#DEFINE.ENUMIDOFFSET(8)
#DEFINE.ENUMIDX(1)
#DEFINE.HEXWIDTH(6)
str blobStr = strFmt(#BLOBFORMAT, strHexBigToLittleEndian(int2hex(_enumId << #ENUMIDOFFSET | _value, #HEXWIDTH)));
;
return conPeek(ContainerClass::blob2Container(BinData::stringToData(blobStr)), #ENUMIDX);
}
Соответственно, вызов: value2enum(formComboBox.enumType(), formComboBox.selection()); тип, в данном случае, переменной будет сохранён.
Конечно, на тему быстродействия заикаться не приходится, ну для разовых операций - вполне.