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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2006, 12:19   #1  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Thumbs up
Всем привет. Опять траблы при экспорте отчёта в Эхель. На этот раз с картинками.
Подсмотрел в макросе как это дело работает. Там написано ActiveSheet.Pictures.Insert('C:\temp.bmp') , вот только в нави не катит такое. Он ругается, мол не объявлена переменная Insert. Вариант Sheet.Range('A1').Insert('C:\temp.bmp') хляет, но уже при экспорте выкидывает ошибку мол вызов функции Insert неудачен. Кстати, если надо пихнуть картинку в Header или в Footer, топроблем не возникает. Код типа ActiveSheet.PageSetup.RightHeaderPicture.Filename = 'C:\temp.bmp' работает исправно. Может надо каким-то другим образом дать ему понять куда надо вставлять картинку?
Старый 10.08.2006, 13:20   #2  
kekki is offline
kekki
Участник
 
58 / 10 (1) +
Регистрация: 27.06.2005
У нас картинки вставляются следующим образом:
Код:
XlWorkSheet.Shapes.AddShape(1,1,1,160,60).Fill.UserPicture(Path);
где Path - путь к картинке
Старый 10.08.2006, 14:20   #3  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Спасибо, Kekki, у нас теперь тоже картинки будут вставляться таким же образом. Если использовать тот код, который вы привели в качестве примера, то вставка будет по дефолту с обрамлением. Чтобы его не было (что впрочем мне и нужно было) устанавливается свойство Line.Transparency:=1;
Итак,
Код:
Shape:=Sheet.Shapes.AddShape(1,1,1,160,60);
Shape.Fill.UserPicture('C:\tmp.bmp');
Shape.Line.Transparency:=1;
Ещё раз спасибо!
Старый 10.08.2006, 14:56   #4  
kekki is offline
kekki
Участник
 
58 / 10 (1) +
Регистрация: 27.06.2005
Вам тоже спасибо
Если мне вдруг понадобится убрать обрамление, буду знать как
Старый 14.08.2006, 09:23   #5  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Вот выдрал кусок, тут небльшие заморочки.
fPar - диапазон ячеек в которые нужно вписать картинку
fPar2 - путь к файлу
Картинка автомасштабируется с сохранением пропроций
Код:
 
	  'P': IF NextParam(fStr,fPar) THEN BEGIN
			 IF NextParam(fStr,fPar2) THEN BEGIN
			   XlsShapes:=XlsWsh.Shapes;
			   XlsRng:=XlsWsh.Range(fPar);
			   EVALUATE( PicLeft,FORMAT(XlsRng.Left));
			   EVALUATE( PicTop,FORMAT(XlsRng.Top));
			   EVALUATE( PicWidth,FORMAT(XlsRng.Width));
			   EVALUATE( PicHeight,FORMAT(XlsRng.Height));

			   XlsShape:=XlsShapes.AddPicture(fPar2,1,1,PicLeft,PicTop,PicWidth,PicHeight);
				 i:=0;
				 XlsShape.LockAspectRatio:=i;
				 i:=2;
				 j:=-1;
				 XlsShape.ScaleHeight(i,j);
				 XlsShape.ScaleWidth(i,j);

				 XlsShape.LockAspectRatio:=-1;
				 IF XlsShape.Width>PicWidth THEN
				   XlsShape.Width:=PicWidth;
				 IF XlsShape.Height>PicHeight THEN
				   XlsShape.Height:=PicHeight;

				 XlsShape.IncrementLeft((PicWidth-XlsShape.Width)/2);
				 XlsShape.IncrementTop((PicHeight-XlsShape.Height)/2);
			   //MESSAGE(FORMAT((PicHeight-XlsShape.Height)/2));

			 END;
		   END;
Старый 13.10.2006, 12:47   #6  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Thumbs up
А как бы нам бы вставить картинку с её оригинальными размерами? Бы... Без всяких вписываний и масштабирований.
Или хотя бы узнать ширину/высоту высоту картинки до вставки?
Старый 13.10.2006, 12:56   #7  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Записывай макрос, и смотри.
Старый 13.10.2006, 13:10   #8  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
Думаю, создание этой темы как раз и было положено после записи макроса, когда было обнаружено, что записанная команда ActiveSheet.Pictures.Insert('C:\temp.bmp') в Наве не работает

Записывал я уже всё... Мимо.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:56.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.