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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.08.2011, 12:54   #1  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Отлично!!! Спасибо огромное!
Вот только никак не разберусь, что делать если мне не нужно масштабировать картинки? Мне нужно выгружать их в реальном размере, которого у меня никак не получается узнать
Старый 29.08.2011, 14:45   #2  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Predatore Посмотреть сообщение
Вот только никак не разберусь, что делать если мне не нужно масштабировать картинки? Мне нужно выгружать их в реальном размере, которого у меня никак не получается узнать
Ковыряние в VBA привело вот к такой строчке ActiveSheet.Pictures.Insert (PicturePath), которая замечательно работает в Эксесле, но в Наве ругается на то, что не знает, что такое Insert (Не знаю, принципиально ли то, что вместо ActiveSheet, в Наве я использую WorkSheet, как мне кажется, по сути это одно и то же)

Так же, облазив инет, наткнулся и на такую штуку, отлично работающую в самом Экселе, огромным приемуществом оной является то, что через Picture, картинкой можно вертеть как угодно.
Код:
Dim PicRange As Range: Set PicRange = Range("A1:B2")
Dim ph As Picture: Set ph = PicRange.Parent.Pictures.Insert(PicturePath)
ph.Top = PicRange.Top: ph.Left = PicRange.Left
Только в этом случае, я не могу найти Picture в Наве. Нашёл другой объект, называется Graphic, но когда я пытаюсь скомпилить в Наве
Код:
Graphic :=  XlRange.Parent.Pictures.Insert(PicturePath);
Он опять же ругается на то, что не знает что такое Insert
Старый 29.08.2011, 14:54   #3  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Predatore Посмотреть сообщение
Он опять же ругается на то, что не знает что такое Insert
Попробуйте описать ряд промежуточных объектов в коде, чтобы получилось ОБЪЕКТ.Insert(). Нав иногда не воспринимает ОБЪЕКТ.ОБЪЕКТ.Метод
Старый 29.08.2011, 17:02   #4  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от romeo Посмотреть сообщение
Попробуйте описать ряд промежуточных объектов в коде, чтобы получилось ОБЪЕКТ.Insert(). Нав иногда не воспринимает ОБЪЕКТ.ОБЪЕКТ.Метод
Я тут MSDN покапал, проблема в том, что Pictures является скрытым Методом, т.е. к нему невозможно обратиться вне VBA. Что есть очень печально.
Сейчас пока вижу только один выход: выгружать картинку из Нава в файл, в Эксель писать в ячейку какой-нибудь флаг и уже из самого экселя реагировать на этот флаг и самостоятельно загружать картинку через Pictures. Метод этот мне совершенно не нравится, поэтому если у кого есть какие соображения, как можно узнать размер картинки в Наве или как вставить в Эксель картинку оригинального размера, я бы с удовольствием их выслушал.
Старый 29.08.2011, 17:13   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
У нас работает вот это
xlShape := xlWorkSheet.Shapes.AddPicture(FileName, 1, 1, Left, Top, Width, Height);
не помню, что это за 1, 1, но остальные аргументы - отступ слева, справа, ширина, высота. Не знаю, что будет если поиграться с аргументами ширина, высота или вообще не указывать их.
Старый 29.08.2011, 17:42   #6  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от romeo Посмотреть сообщение
У нас работает вот это
xlShape := xlWorkSheet.Shapes.AddPicture(FileName, 1, 1, Left, Top, Width, Height);
не помню, что это за 1, 1, но остальные аргументы - отступ слева, справа, ширина, высота. Не знаю, что будет если поиграться с аргументами ширина, высота или вообще не указывать их.
Это у меня тоже работает. Первая 1 я не совсем понял что значит, вторая это "не сохранять" картинку при сохранении файла. Что бы сохранять, должно быть -1.
Проблема только в том, что мне не известны оригинальные значения Width и Height картинки. И картинки у меня идут с различными соотношением высоты и ширины. А так бы отмасштабировал бы их в один размер и делов то.
Старый 07.09.2011, 20:52   #7  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
У меня вопрос, который уже не касается картинок, но новую тему решил не создавать, т.к. вопрос опять же по Экселю.
И так, есть шаблон, в который выгружаются строки. Проблема в том, что строки эти группируются в отдельные блоки. У каждого такого блока есть хедер и футер. Т.е. сначала идёт строка с хедером, потом строки заказа, потом футер, потом снова хедер, другие строки заказа и т.д. Всё это красиво оформляется, разными цветами, границами...
В чём собственно проблема. Проблема в том, что у меня 3 шаблона строки. А я не могу копировать строки в Экселе из Навижена Т.е. пока я рисую строки заказа, всё хорошо, при вставке новой строки, она копирует форматирование из предыдущей (первый хедер - он же шаблон, уже нарисован). Потом дело доходит до футера (он тоже уже есть т.к. является шаблоном). А вот потом мне нужно вставить хедер для другой пачки строк. Я хочу скопировать строку с моим шаблонным хедером, и вставить её, но у меня это не получается!
Я делаю так:
Код:
xlRange := xlWorkSheet.Range ('A1');  
 xlRange.EntireRow.Copy;

xlRange := xlWorkSheet.Range ('A10')
 xlRange.EntireRow.Insert;
Строки у меня исправно вставляются, но нифига не копируются
 


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

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

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