|
![]() |
#1 |
Участник
|
жаль не помогло (( ax2009
немного упростил пример X++: Microsoft.Office.Interop.Excel.Shapes shapes; Microsoft.Office.Interop.Excel.Shape shape; System.Object linkToFile; System.Object saveWithDocument; System.Single lef; System.Single top; System.Single width; System.Single height; str _file; ; new InteropPermission(InteropKind::ClrInterop).assert(); lef = 10.0; top = 10.0; width = 100.0; height = 100.0; linkToFile = 0; saveWithDocument = 1; // shapes = worksheet_net.get_Shapes(); shape.Copy(); //просто поставил, чтобы убедиться что на сам объект компилятор не ругается shapes.SelectAll(); //просто поставил, чтобы убедиться что на сам объект компилятор не ругается shape = shapes.AddPicture(_file, //ругается тут (( linkToFile, saveWithDocument, lef, top, width, height); Класс Microsoft.Office.Interop.Excel.Shapes не содержит эту функцию. хотя в редакторе в списке ф-ций этот метод есть и описание и кол-во переменных совпадает. Может кривая библиотека? Прописана такая Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL |
|
![]() |
#2 |
Молодой, подающий надежды
|
у меня Version = 14.0.0.0
|
|
![]() |
#3 |
Участник
|
Ошибка скорее всего из-за, мягко говоря, кривой реализации работы с .NET в компиляторе AX 2009. Вместо конкретного .NET типа стоит использовать CLRObject. В этом случае, например, проверки на наличие того или иного метода .NET объекта будут выполнятся не на этапе компиляции, а на этапе выполнения. И ошибка про отсутствующий метод должна уйти (на самом деле здесь просто компилятор не может подобрать нужный метод .NET класса по указанным в коде типам фактических параметров).
|
|
|
За это сообщение автора поблагодарили: ex3em (1), Logger (5). |
![]() |
#4 |
Участник
|
Цитата:
Сообщение от makbeth
![]() Ошибка скорее всего из-за, мягко говоря, кривой реализации работы с .NET в компиляторе AX 2009. Вместо конкретного .NET типа стоит использовать CLRObject. В этом случае, например, проверки на наличие того или иного метода .NET объекта будут выполнятся не на этапе компиляции, а на этапе выполнения. И ошибка про отсутствующий метод должна уйти (на самом деле здесь просто компилятор не может подобрать нужный метод .NET класса по указанным в коде типам фактических параметров).
Смог заставить работать это дело через CLRObject в самописном классе SysExcelShapes_NET (делал по аналогии с классами SysExcel *** _NET) сделал метод addPicture Код: CLRObject ms2; ; ms2 = shapes_net; ms2.AddPicture(_fileName, 0, 1, 10.0, 10.0, 100.0, 100.0); |
|
Теги |
clrobject |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|