powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расширение в отчете (new)
10 сообщений из 10, страница 1 из 1
расширение в отчете (new)
    #32423841
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно известная проблема с изображением табличек в отчете, когда используется расширение.

На данный момент мне известен единственный приемлемый способ
- с прорисовкой линий при событии печать

мне в нем не нравится что линии не приемлемы при полосатой раскраске (заливке каждой 3 записи светло серым)

а по сему такие мысли:

1. Измерение высоты строк
если в таблице одно поле задает максимальную высоту строки (простейший вариант) то

на стадии открытия отчета программно сгенерить временный отчет с этим контролом по событию печать промерить его высоту в каждой записи и сохранить в массив

для установки размеров использовать данные из массива .

2. А нет ли какого контрола для рисования строки таблицы ?
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32423853
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или может не создавать временный отчет а измерять в первом запуске, закрывать и снова открывать, но данные могут измениться ....
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32423902
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК
Недавно делал такую штуку, нужно было показывать несколько контролов с форматированием в зависимости от различных условий друг под другом. Так просто измеряли высоту максимального контрола на он_формат секции и позиционировали под ним, если надо, другие, точно также поступали и с вертикаольными линиями - горизонтальных нет.
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32423936
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hummer

такой способ здесь не пройдет, если конечно нет такой хитрой штуки как измерить высоту контрола после его расширения

расширенная высота контрола известна только в событии онпринт но уже нельзя изменять размеры ((

как измерить высоту контрола после расширения???
может быть разное число символов, размер и насыщенность шрифта
может апи какое есть для такого расчета?
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424053
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
побывал на
http://www.lebans.com/textwidth-height.htm

меряет размер контрола эмулируя построение надписи через апи.

пробовал его отчет - пример.
работает, не быстро и не точно - если ширину поля сделать меньше последнее слово не влазит.
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424178
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправил пример. Может что-то не так понял, но вроде всё работает....
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424249
не понял проблемы. Если в печати, к примеру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Static bColor
    bColor = bColor +  1 
    If bColor Mod  3  =  0  Then
        Me.FillColor =  12632256 
        Me.FillStyle =  0 
    Else
        Me.FillStyle =  0 
        Me.FillColor =  16777215 
    End If

и в отрисовке, после определения hMax
Код: plaintext
1.
2.
rep.CurrentX =  0 
rep.CurrentY =  0 
rep.Line Step( 0 ,  0 )-(rep.Width, hMax), , B

то все работает.

В чем проблема?
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424445
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идея вместо цвета заполнения рисовать под контролами прямоугольник понятна


не понятна конструкция
rep.Line Step(0, 0)-(rep.Width, hMax), , B

Step(0, 0) ??? к чему это?? я помню степ только для циклов
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424706
N_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК мне в нем не нравится что линии не приемлемы при полосатой раскраске (заливке каждой 3 записи светло серым)
Код: plaintext
If ppp Mod  3  <>  0  Then Me.Section( 0 ).BackColor = RGB( 255 ,  255 ,  255 ) Else Me.Section( 0 ).BackColor = RGB( 240 ,  240 ,  240 )

,где ppp возрастает для каждой записи на 1.
Разве не зальёт каждую 3 запись (область данных)

p.s.:
Me.Height отлично справится с измерением высоты прямоугольника для рисования.
...
Рейтинг: 0 / 0
расширение в отчете (new)
    #32424812
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 N_A

сенькс, получилось
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / расширение в отчете (new)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]