Цитата:
Сообщение от
DesparioN
Если не сложно, можете раскрыть тему более подробно?
X++:
System.Type enumValue;
System.Reflection.MethodInfo methodInfo;
enumValue = System.Type::GetType("DocumentFormat.OpenXml.EnumValue`1");
methodInfo = enumValue.GetMethod("Value");
А что собственно дальше?
В частности мне надо в DocumentFormat.OpenXml.Spreadsheet.Alignment указать значение для горизонтальных и вертикальных границ.
Коллеги, может у кого есть пример создания типа "DocumentFormat.OpenXml.EnumValue`1" в аксапте. Уже голову сломал.
Вот тут хороший пример:
https://wiki.programstore.ru/primer-...rammy-v-excel/
Но там используется метод OXMLExp::getEnumValue(), а кода нет.
В reflection более менее разбираюсь. Но всё равно не выходит
ЗЫ Ну а если есть готовый код по вставке картинки в XMLExcelReport_RU в XML буду оооочень благодарен.
На С# вот такой простой код:
X++:
DocumentFormat.OpenXml.EnumValue<DocumentFormat.OpenXml.Drawing.BlipCompressionValues> value;
value = new DocumentFormat.OpenXml.EnumValue<DocumentFormat.OpenXml.Drawing.BlipCompressionValues>(DocumentFormat.OpenXml.Drawing.BlipCompressionValues.Print);
В аксапте возвращает null (тот же код в C# выдает значение)
X++:
enumObject = CLRInterop::parseClrEnum('DocumentFormat.OpenXml.Drawing.BlipCompressionValues', 'Print');
enumType = System.Type::GetType("DocumentFormat.OpenXml.Drawing.BlipCompressionValues, DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
enumValueType = System.Type::GetType("DocumentFormat.OpenXml.EnumValue`1, DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
typeParams = new System.Type[1]();
typeParams.SetValue(enumType, 0);
genericType = enumValueType.MakeGenericType(typeParams);
Object = System.Activator::CreateInstance(genericType,
CLRInterop::parseClrEnum('DocumentFormat.OpenXml.Drawing.BlipCompressionValues', 'Print'));