Как управлять элементами в отчете???
BadBad
Дата: 02.06.2004 08:31:44
Нужна помощь!!
Просидел весь вечер и ничего не смог сделать...Бился с отчетом
проблема: как вывести элемент (поле) в определенном месте?
Отчет выводит наклейки. В прямоугольнике, скажем 10х10, выводятся поля.
У полей стоит атрибут - авторасширение. И если данные не помещаются в одну строчку, тогда поле расширяется на две а иногда и на три строки. Соответственно все что ниже смещается еще ниже.
Задание координат полей (me.поле1.top=200) в свойстве форматирования ничего не дает, всеравно смещается...
Даже следующая команда не ставит поле точно
me.поле1.top=me.прямоугольник1.height-200
где me.прямоугольник1.height - рамка внутри которой поля
200 - отступ снизу
как поле прибить к определенному месту?
Alexander G
Дата: 02.06.2004 08:42:06
А зачем делать тогда авторасширение, если размер отчета фиксирован? Сразу сделать им максимально допустимый размер.
Shark
Дата: 02.06.2004 08:46:24
Проблемы не понял.
Если не надо чтобы расширялось и выводилось всегда 10*10-убрать расширение и выводить фиксировано. Если надо, чтобы расширялось- пущай расширяется, тогда зачем прибивать.
Может, проблема в этом:
Файл-Параметры страницы- Столбцы
Shark
Дата: 02.06.2004 08:51:18
Свойства Height и тд позиционируют контрол внутри раздела.Если есть свойство авторасширение, то ширина раздела для каждой записи разная
Вот
Shark
Дата: 02.06.2004 08:51:56
в смысле высота:-)
BadBad
Дата: 02.06.2004 09:45:23
Подробнее:
представляте прямоугольник 10х10
внутри четыре поля:
1. Название организации
2. ФИО руководителя
3. Адрес фирмы
4. Число вложений в конверт (колличество документов вкладываемых в документ, фиксированное число берется из базы)
Пункты 1, 2, 3 могут расширятся.
Пункты 1 и 2 прижаты к верху
3 и 4 расположены "на дне"
Если сразу поля сделать шириной в 2 строки, тогда будет большое расстояние между Названием и ФИО руководителя в случае коротких названий
(в 1 строку)
Shark
Дата: 02.06.2004 09:54:44
Понятно.
Противная фигня.
Я с этим недавно столкнулся, когда надо было дорисовывать квадратики нераздвинутым полям. Решилось дорисовыванием прямоугольников, а свойства полей так и не изменились.
Проблема тут в следующем:
В событии форматирование твои контролы еще не раздвинулись. А в событии принт нельзя уже менять свойства контролов, поздняк:-(
Предлагаемое решение: Забабахай свои ценники в Excel. Там можешь резвится как хочешь. Универсальный рецепт для СЛОЖНЫХ отчетов.
Daf
Дата: 02.06.2004 09:55:28
Понимаешь... нельзя в банку емкость 1 литр запихнуть 2 литра жидкости

А если данные, которые ты выводишь, на этапе ввода в БД ограничивать, чтобы все было красиво и шеколано.
А почему именно квадрат 10*10?
Shark
Дата: 02.06.2004 10:01:13
Исчо один вариант.
Забабахай всю информацию в один Контрол. Ну или в два. Короче ты понял. Через vbCrlF. А линии можно потом нарисовать методом line на событии Print
BadBad
Дата: 02.06.2004 10:22:42
Почему 10х10, это я так для примера написал, это наклеки на конверт
Что при форматировании поля еще не раздвигаются я догодался часа через два безуспешных попыток сделать отчет красивым.
Потом решил сам спрогнозировать расширение поля
if len(me.поле1)>45 then
в поле помещается 45 буковок, начит поле расширится и нижнее поле сдвинится на строчку ниже. Высота строки известна.
Также проверяем Поле2 и заранее знаем будет расширение или нет.
Поле1 и Поле2 - это верхняя часть
Казалось бы вычислить смещение и нижние поля заранее приподнять повыше.
me.Поле3.top=600-a
где а - величина вычисленного смещения
А ничего подобного!!! Все равно отбрасывает последнее поле за пределы
Попробую в одно поле запихнуть,
а к Екселю подключаться не охота, Представляешь пользователь будет скакать из одного приложения в другое...
Спасибо