Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Размер поля в отчете

6.6K
18 января 2006 года
Victor_F
14 / / 07.12.2004
В Access требуется в зависимости от длины содержимого поля изменять его высоту в отчете и изменять отступ сверху в последующих полях.
Допустим одна запись содержит 120 символов и строка должна разложится в отчете на две, т.е. высота поля должна автоматически увеличится в два раза, соответственно остальные поля надо спустить автоматом вниз на такое же к-во миллиметров, а если скажем 50 символов, то ничего ни куда не смещается.
Подскажите, как можно это сделать? Какие команды использовать, а то получается не красиво? Требуется выводить инфу в 5 полях отчета, а количество символов в записях может меняться от 5 символов до 255, соответственно получаются в некоторых полях где мало символов большие просветы между полями т.к. сейчас высота полей выставлена под размер двух строк.
Спасибо за внимание.
17K
16 марта 2006 года
bopoha
1 / / 16.03.2006
На сколько я понимаю нужно нарисовать отчет ввиде таблицы. Чтобы это сделать нужно:
1. границы полей сделать прозрачными
2. создать обработчик события отчета Paint нужного раздела отчета
3. в этом обработчике можно найти самое высокое поле и нарисовать сетку при помощи метода отчета Line (высота уже известна) вокргу всех полей находящихся на одной линии. ДЛя упрощения можно рисовать только вертикальные линии, а горизонтальные нарисовать сразу в конструкторе.

Код:
Private Sub ОбластьДанных_Print(Cancel As Integer, PrintCount As Integer)
    If PrintCount > 1 Then
        Exit Sub
    End If
   
    '-- отрисовка вертикальных линий
    '-- чтобы получилась таблица
   
    Dim ctl As Control
    Dim lHeight As Long
   
    '-- высоту определяет поле название пункта
    Set ctl = Me.P_N_PRIM
   
    lHeight = ctl.Height
   
    Me.DrawWidth = 1
    '-- отрисовываются линии только вертикальные и области данных
    '-- номера линий указаны слева на право
    '-- 3-я
    Me.Line (ctl.Left, ctl.Top)-Step(0, lHeight), RGB(0, 0, 0)
    '-- 4-я
    Me.Line (ctl.Left + ctl.Width, ctl.Top)-Step(0, lHeight), RGB(0, 0, 0)
    '-- 2-я
    Set ctl = Me.P_C_COUNT
    Me.Line (ctl.Left, ctl.Top)-Step(0, lHeight), RGB(0, 0, 0)
    '-- 1-я
    Set ctl = Me.P_N_GRUP
    Me.Line (ctl.Left, ctl.Top)-Step(0, lHeight), RGB(0, 0, 0)
End Sub


Цитата:
Originally posted by Victor_F
В Access требуется в зависимости от длины содержимого поля изменять его высоту в отчете и изменять отступ сверху в последующих полях.
Допустим одна запись содержит 120 символов и строка должна разложится в отчете на две, т.е. высота поля должна автоматически увеличится в два раза, соответственно остальные поля надо спустить автоматом вниз на такое же к-во миллиметров, а если скажем 50 символов, то ничего ни куда не смещается.
Подскажите, как можно это сделать? Какие команды использовать, а то получается не красиво? Требуется выводить инфу в 5 полях отчета, а количество символов в записях может меняться от 5 символов до 255, соответственно получаются в некоторых полях где мало символов большие просветы между полями т.к. сейчас высота полей выставлена под размер двух строк.
Спасибо за внимание.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог