AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2015, 22:14   #7  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
код рабочий, Ax2012, Office 2013
X++:
public SysExcelShape_NET addPicture(str         _file,
                                    real        _width,
                                    real        _height,
                                    boolean     _rightSide = false
                                    boolean     _center    = false
                                    )
{
    Microsoft.Office.Interop.Excel.Worksheet    curWorksheet;
    Microsoft.Office.Interop.Excel.Shapes       shapes;
    Microsoft.Office.Interop.Excel.Shape        shape;

    System.Object                               linkToFile;
    System.Object                               saveWithDocument;
    System.Single                               left;
    System.Single                               top;
    System.Single                               width;
    System.Single                               height;

    real                                        leftReal;
    real                                        widthRangeReal;
    Microsoft.Office.Interop.Excel.Borders      borders;
    Microsoft.Office.Interop.Excel.Border       borderTop;

    new InteropPermission(InteropKind::ClrInterop).assert();

    linkToFile          = 0;
    saveWithDocument    = 1;

    left                = range_net.get_Left();
    top                 = range_net.get_Top();
    width               = _width;
    height              = _height;
    
    if (_rightSide)
    {
        leftReal        = left;
        widthRangeReal  = range_net.get_Width();
        left            = leftReal + widthRangeReal - _width;
    }
    else
    if (_center)
    {
        leftReal        = left;
        widthRangeReal  = range_net.get_Width();
        left            = leftReal + (widthRangeReal / 2) - (_width / 2);
    }

    borders             = range_net.get_Borders();
    borderTop           = borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex::xlEdgeTop);

    curWorksheet    = range_net.get_Worksheet();
    shapes          = curWorksheet.get_Shapes();
    shape           = shapes.AddPicture(_file,
                              linkToFile,
                              saveWithDocument,
                              left,
                              top,
                              width,
                              height);

    if (borderTop.get_Weight())
    {
        shape.IncrementTop(1);
    }

    return SysExcelShape_NET::construct(version, shape);
}
__________________
Кононов Пётр
За это сообщение автора поблагодарили: Logger (3), ex3em (1).
Теги
clrobject

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Взаимодействие с Excel через .NET (семейство классов SysExcel) gl00mie DAX: Программирование 102 11.08.2022 17:09
Глюк(?) при импорте в Excel через .Net Loengrinchik DAX: Программирование 1 14.08.2015 10:55
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
fed: Net requirements update in MRP Module and Working Set of MRP Blog bot DAX Blogs 14 08.05.2012 13:09
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:03.