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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.05.2009, 07:05   #1  
PPL is offline
PPL
Участник
 
14 / 12 (1) ++
Регистрация: 21.02.2008
Custav по вашему примеру работает, но
делаю вместо image.captureScreen() - image.loadFile("C:\\png.png");
фон серый и непрозрачный, хотя в самом рисунке прозрачный, может - Image.loadFile() - такую фигню делает?

да,уж .. при сохранении файла в *.jpg - все работает...

Последний раз редактировалось PPL; 19.05.2009 в 07:18.
Старый 19.05.2009, 10:32   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Мда, интересное поведение у этой прозрачности... Похоже, действительно что-то где-то глючит...

Заимствовал PNG-файл Ивана Кашперука из этого сообщения Поздравления (Репутация и Количество сообщений):
Название: Andre_2000.PNG
Просмотров: 2333

Размер: 6.5 Кб

Положил его в корень диска C. Как видно, цвет фона у него голубой (Excel во время записи макроса показал RGB 226, 240, 255 ). Однако, наш код, использующий белый цвет (RGB 255, 255, 255), правильно (почему??) установил прозрачность (у меня, во всяком случае, это так).
X++:
static void Job198_2(Args _args)
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();
    Image   image = new Image();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;

    COM     shape;
    COM     pf;
    ;
    doc.NewFile('',false);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('B10');

    //image.captureScreen(0+(i-1)*2, 0+(i-1)*2, 300+(i-1)*2, 100+(i-1)*2);
    image.loadFile(@'C:\Andre_2000.PNG'); //

    image.clipboardCopy();

    range.pasteSpecial(0);

// 18.05.2009 ПРОЗРАЧНОСТЬ -->
    shape = xlApp.Selection();
    shape = shape.ShapeRange();
    pf = shape.PictureFormat();
    pf.TransparentBackground(-1);
    pf.TransparencyColor(WinAPI::RGB2int(255,255,255)); // белый
    //pf.TransparencyColor(WinAPI::RGB2int(226,240,255)); // голубой
// 18.05.2009 <--

    doc.visible(true);
}
А вот использование вышеупомянутого (законного!) голубого окончилось неудачей - фон не стал прозрачным. В то же время, как я уже говорил, можно всё переложить на плечи Excel и при чтении из файла:
X++:
static void Job198_2(Args _args)
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();
    Image   image = new Image();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;

    COM     shape;
    COM     pf;
    ;
    doc.NewFile('',false);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    shape = activeSheet.Pictures();
    shape = shape.Insert(@'C:\Andre_2000.PNG'); //
    shape = shape.ShapeRange();

    range = activeSheet.Range('B10');
    shape.Top(range.Top());
    shape.Left(range.Left());

    pf = shape.PictureFormat();
    pf.TransparentBackground(-1);
    pf.TransparencyColor(WinAPI::RGB2int(226,240,255)); // голубой

    shape.Select();

    doc.visible(true);
}
Теги
excel, рисунок

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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