AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

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

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

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

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

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

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

PHP-Code:
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();

Alt 14.06.2004, 11:16   #6  
epack ist offline
epack
Участник
 
15 / 10 (1) +
Registriert seit: 14.01.2004
Ort: Москва
Спасибо.
Stichworte
excel, image, законченный пример, картинка

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Вывод в отчёт значения 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 16:43 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.