09.12.2010, 14:02 | #1 |
Участник
|
Функция global::valueFromXMLNode() в Ax2009 работает не корректно
Ax2009 RU5
Для примера кода X++: static void test(Args _args) { xmlNode xmlNode; xmlDocument xmlDocument; struct content; SalesType SalesType; ; xmlDocument = new xmlDocument(); xmlNode = xmlDocument.createNode(xmlNodeType::Element, "test", ""); xmlNode.text(int2str(enum2int(SalesType::Sales))); SalesType = global::valueFromXMLNode(Types::Enum, xmlNode).value("value"); info(strFmt("%1", SalesType)); } Дело в ошибке конвертации enum - она умеет возвращать только 0 или 1. Ошибку решил исправить так: X++: static Struct valueFromXMLNode (Types t, XmlNode n) { #define.value('value') Struct retval; int enum; //было boolean enum ; //validate arguments befor using them if (n == null) return null; // --> if (t == types::ENUM) { retval = new struct(types::Integer, #value); } else { retval = new struct(t, #value); } // <-- |
|