Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не могу переместить контрол в отчёте
 
 автор: Mak&S   (31.08.2007 в 19:14)   личное сообщение
 
 

Задача - напечатать адрес и название компании в строго определённом месте. Длина строки может быть от 40 до 200 символов. Выровнять по вертикали надо по нижнему краю. Стандартными методами это не сделать поэтому написал простенький код. Загвоздка только в методе MOVE - ругается на этом месте и всё тут - "Введённое значение не подходит для данного свойства"


'Company - название поля
'В свойствах поля Company поставить сжатие - Да

'x-левая граница  контрола величина постоянная - находится экспериментально
'y-нижняя граница расположения контрола величина постоянная - находится экспериментально

Const  x = 100
Const  y = 100

Private Sub ОбластьДанных_Print(Cancel As Integer, PrintCount As Integer)

TopNew = y + Company.Height
Company.Move x, TopNew

End Sub



В чём может быть дело?

  Ответить  
 
 автор: Анатолий (Киев)   (31.08.2007 в 19:29)   личное сообщение
 
 

>Company.Move x, TopNew
В А2000-2002 нет метода move у поля. Нужно так.
Можно так (если отчет разрешит):
Company.Top = TopNew
Только здается мне, что надо:
>TopNew = y - Company.Height

  Ответить  
 
 автор: Mak&S   (31.08.2007 в 19:37)   личное сообщение
 
 

>Только здается мне, что надо:
>>TopNew = y - Company.Height

Точно. Не заметил.

А по всему остальному - преобразовал базу в 2003, выставил формат базы по умолчанию - 2003 - никак не хочет не мувит и не топает. И ошибка одна и та же - 2101

  Ответить  
 
 автор: Mak&S   (03.09.2007 в 11:47)   личное сообщение
 
 

Move в Private Sub ОбластьДанных_Print не работает. А текущая высота контрола только тут и показывается. Как же извернуться чтоб посмотреть актуальную высоту контрола в _Print , замувить его в _Page и отправить на печать... Неужель придёца програмно каждый отчёт печатать...воть ведь засада

  Ответить  
 
 автор: Анатолий (Киев)   (03.09.2007 в 13:33)   личное сообщение
 
 

У объекта Report есть метод Print, позволяющий напечатать текст в любом месте раздела. Читайте Help, там и пример есть.

  Ответить  
 
 автор: Mak&S   (03.09.2007 в 14:44)   личное сообщение
 
 

Тоже вариант. Но я сделал так, буквально в двух словах.
У Report'а источник данных таблица. Все поля берут инфу из соответствующих столбцов.
В отдельном модуле получаю рекордсет этой таблицы и бегу по всем записям. Открываю Report для просмотра, и кодом который прописан на событие Detail_Print считываю текущую высоту нужного мне контрола в переменную. Затем открываю Report в режиме конструкора и выставляю нужный TOP этого контрола. Затем закрываю и посылаю Report на печать.
Ну да, мелькает при печати - но зато результат достигнут.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList