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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2004, 13:46   #1  
epack is offline
epack
Участник
 
15 / 10 (1) +
Регистрация: 14.01.2004
Адрес: Москва
Вывод изображения в Excel-отчёт.
Подскажите пожалуйста, как из кода Аксапты вывести в Excel-документ изображение.
Само оно хранится в таблице как Bitmap-контейнер (и ещё формат картинки в соседнем поле).
Явно, надо добавить в класс ComExcelDocument_Ru пару строк, но вот каких именно?
Это нужно для формирования отчётной формы с картинками, которая очевидно просится в Excel.
Старый 09.06.2004, 14:17   #2  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
Вариант 1: Использовать в X++ буффер обмена. Картинку из источника поместили в буфер обмена. А потом вызвали метод у ком объекта "paste". Как использовать буффер обмена - на форуме было. (кажется Произоводительность и Excell называлась). Недостатки - если картинка большая, может притормаживать.

Вариант 2: Сделать в Excell шаблон в котором уже будет картинка. Т.е. вы будите писать данные из аксапты в ексель документ, в которому уже есть картинка. Но этот вариант токо на тот случай, если картинка у вас стационарная.

Вариант 3: помойму еще какие-то функции (методы) есть для вставки картинок в Excell. Range.value(). Но я не уверен.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 09.06.2004, 16:27   #3  
epack is offline
epack
Участник
 
15 / 10 (1) +
Регистрация: 14.01.2004
Адрес: Москва
Вот третий вариант меня как раз больше всего интересует.

Картинка не статическая...
Старый 09.06.2004, 16:33   #4  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
помому не стоит заморорачиваться и сделать пока через буфер обмена. Напрямую все таки не вставишь.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 11.06.2004, 19:55   #5  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
http://www.navision.net/forum/topic.asp?TOPIC_ID=11002

PS. Процитирую, а то там сервер редко, но бывает недоступен.

PPS. Пути в примере содержать вместо одного бак слеша два (\\). Их форум съел.

PHP код:
NOTE 1it expects an image named c:\temp\hello.bmp to exist.
NOTE 2Be careful debugging this stuff, if execution is discontinued and
comWorkBooks.close() and comApplication.quit() are not called,
you will need to manually kill the EXCEL.EXE process in the task manager.

COM comApplication;
COM comWorkbooks;
COM comWorkbook;
COM comWorksheet;
COM comShapes;

COMVariant variant = new COMVariant();
COMVariant xpos = new COMVariant();
COMVariant ypos = new COMVariant();
COMVariant state = new COMVariant();
COMVariant width = new COMVariant();
COMVariant height = new COMVariant();

SysExcelWorksheet excelWorksheet;
SysExcelCells excelCells;
;

//Create the Excel app and grab the workbooks
comApplication = new COM('Excel.application');
comWorkBooks comApplication.workbooks();

//Wrap the rest in an exception to make sure excel is closed
try
{
//Create a new workbook and get a reference to it
variant.int(-4167);
comWorkBook comWorkBooks.add(variant);
comWorkSheet comApplication.activeSheet();
//Add some text to the worksheet
excelWorksheet SysExcelWorkSheet::construct(MSOfficeVersion::Office2000comWorksheet);
excelCells excelWorksheet.cells();
excelCells.item(10,1).value("Hello world");

//Set up image parameters
variant.bStr("c:\\temp\\hello.bmp");
xpos.int(1);
ypos.int(1);
state.int(1);
width.int(100);
height.int(100);
//Add the image to the worksheet
comShapes comWorkSheet.shapes();
comShapes.addPicture(variant,xpos,ypos,state,state,width,height);

//Autofitt and protect the sheet
excelworksheet.columns().autoFit();
excelWorksheet.protect('',true,true);

//Save the sheet and close the app
comWorkBook.saveas("c:\\temp\\hello.xls");
comWorkBooks.close();
comApplication.quit();
}
catch(
Exception::Error)
{
//Force app to quit
comWorkBook.saveas("c:\\temp\\hello.xls");
comWorkBooks.close();
comApplication.quit();

Старый 14.06.2004, 11:16   #6  
epack is offline
epack
Участник
 
15 / 10 (1) +
Регистрация: 14.01.2004
Адрес: Москва
Спасибо.
Теги
excel, image, законченный пример, картинка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод в отчёт значения QueryBuildRange Sergey Petrov DAX: Программирование 2 16.10.2008 16:33
Маленькое замечание про вывод в Excel NNB DAX: Программирование 11 23.06.2008 16:23
Вывод в Excel в формате XML и ширина колонок gl00mie DAX: Программирование 1 30.10.2006 10:45
отчет в Excel через COM Pawlik DAX: Программирование 2 23.03.2006 15:44
Вывод в Excel в определнный Worksheet... soin DAX: Программирование 1 22.10.2004 13:53

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

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

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