Изменение высоты рисунка в отчете

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

SantaDin
Сообщения: 7
Зарегистрирован: 14 янв 2008, 13:27

Есть БД в которой для каждой записи соответствует свой рисунок.
Рисунки разные по высоте (ширина постоянная).

Вопрос:
:confused: Как при выводе отчета на печать сделать так, чтобы рамка
рисунка (а вместе с ней и область данных) изменялись по высоте, в
зависимости от высоты рисунка. Т.е. если рисунки большие, то на
страницу отчета получалось бы 2-3 рисунка, а если маленькие, то 5-6
рисунков.
Помогите пожалуйста. :(
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте SantaDin.
Откройте диалог свойств и на вкладке "Макет", поупражняйтесь со свойством "Установка размеров", контрола в котором размещается рисунок.
Евгений.
SantaDin
Сообщения: 7
Зарегистрирован: 14 янв 2008, 13:27

Упражнения на вкладке "Макет" ничего не дадут по причине того, что изменения должны производится динамически, в зависимости от наполнения отчета, а сделать это можно только при помощи VBA!!! ;)
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте SantaDin.
Да скорее всего "ничего не дадут", там ведь только настраивается масштабирование рисунка под размер рамки(Фрагмент, Вписать в рамку, По размеру рамки), а Вам надо обратное. Вы правы можете не "Упражняться" :)
Евгений.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Я так понимаю, высота строки должна быть равной высоте рисунка?
Если размеры рисунка известны, то все можно сделать достаточно просто. А вот если нет... Как их получить в VBA?
Кстати, а где хранятся сами рисунки?
SantaDin
Сообщения: 7
Зарегистрирован: 14 янв 2008, 13:27

VictorM писал(а):Я так понимаю, высота строки должна быть равной высоте рисунка?
Если размеры рисунка известны, то все можно сделать достаточно просто. А вот если нет... Как их получить в VBA?
Кстати, а где хранятся сами рисунки?
1. Совершенно верно - Высота строки = высоте рисунка.
2. Вся трудность как раз в том, что размеры заранее неизвестны и каждый раз
изменяются! Думаю, что всё-таки здесь необходимо принудительно ограничить
высоту рисунка по максимальному значению в xx pix, а если рисунок по высоте
меньше допустимого значения, то высота строки = высота рисунка
3. Риунки хранятся в каталоге с БД в отдельной папке "Рисунки"
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Посмотрите:
это конечно только прикидка, но высоту (да и ширину) рисунка уже можно получить, а дальше, видимо, дело техники.
SantaDin
Сообщения: 7
Зарегистрирован: 14 янв 2008, 13:27

VictorM писал(а):Посмотрите:
это конечно только прикидка, но высоту (да и ширину) рисунка уже можно получить, а дальше, видимо, дело техники.
Извиняюсь за глупые вопросы (я не силён в VBA), но приминительно к Access, наверное, будут использоваться другие операторы.
И ещё, мне не совсем понятен синтаксис данного оператора:
ActiveSheet.Shapes

Помогите, если не трудно.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

В Access не знаю, не пробовал.
ActiveSheet.Shapes - АктивныйЛист. Фигура.
В данном случае - рисунок.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте SantaDin.
О высоте какой стоки отчета Вы сказали - "Совершенно верно - Высота строки = высоте рисунка."?
Евгений.
Ответить