Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.02;
Скачать: CL | DM;

Вниз

Масштабирование записей в QuickReport   Найти похожие ветки 

 
dmtr ©   (2003-09-17 15:31) [0]

Ситуация такая: есть отчет, сделанный в QR. В DetailBand выводятся данные из DataSet-а. Данные выводятся в ячейки таблицы, которая нарисована при помощи TQRShape. Свойства AutoSize компонента TQRDBText, который отображает данные, я установил в False, а WordWrap - в True (т.о. зафиксировав ширину поля и установив изменяемую высоту строки).
Внимание вопрос!!! Как сделать так, чтобы строка таблицы(TQRShape) при изменении высоты текста также соответственно изменялась?


 
dmtr ©   (2003-09-17 16:36) [1]

up


 
Sandman25 ©   (2003-09-17 16:42) [2]

Наверное, ручками.
У Band должно быть событие типа OnPrint, в котором уже известна высота строки.
На практике такого не делал, правда.


 
dmtr ©   (2003-09-17 17:21) [3]

В том-то и дело, что нет такого события


 
Sandman25 ©   (2003-09-17 17:52) [4]

Событие AfterPrint не подойдет? Судя по его описанию, можно сделать еще один точно такой же Band, положить его выше нужного, в его BeforePrint отменить его печать, в его AfterPrint считать высоту нужного компонента и затем использовать ее при печати (BeforePrint) "настоящего" Band"а.


 
dmtr ©   (2003-09-17 18:19) [5]


> Судя по его описанию, можно сделать еще один точно такой
> же Band

Т.е. скопировать базовый? Если так, то как это сделать?


 
Sandman25 ©   (2003-09-17 18:19) [6]

Ctrl C, Ctrl V.


 
dmtr ©   (2003-09-17 18:30) [7]

:)))


 
dmtr ©   (2003-09-17 18:37) [8]


> Sandman25 © (17.09.03 17:52) [4]

Не получается. Если отменить печать бэнда, то с ним не производится никаких действий, в результате, например, высота QRDBText-а равна 0;


 
Sandman25 ©   (2003-09-17 18:47) [9]

Понятно. Жаль, что я не смог Вам помочь :(
Может, кто другой знает.


 
dmtr ©   (2003-09-18 09:35) [10]

Народ, может все таки кто-то знает, а?


 
Johnmen ©   (2003-09-18 10:31) [11]

Данный вопрос неоднократно появлялся здесь.
Ответ может несколько тебя огорчить...:) Придется "ручками" считать высоту компонента отображения, исходя из содержимого, параметров шрифта, ширины и т.д. После чего в BeforePrint выставлять рассчитанную высоту необходимым элементам.
Сразу скажу, что тебе придется повозиться...:)
Поэтому, если хочешь быстро и просто, пересмотри принцип отображения.


 
dmtr ©   (2003-09-18 11:03) [12]


> исходя из содержимого, параметров шрифта

Я так и пытался, но проблема в следующем: копонент QRDBText, такое ощущение, что не видит выводимый в него техт из DataSet-а, т.е. если в Befor/AfterPrint вставить что-то по типу
ShowMessage(QRDBText1.Caption);
то получим имя поля надора данных, которое подставляется в QRDBText1.Caption по умолчанию.
Если текст в QRDBText1 занимает несколько строк, то все равно
запрос QRDBText1.Lines.Count возвращает значение 0.


 
Sandman25 ©   (2003-09-18 11:07) [13]

Сделайте Memo с аналогичными размерами и шрифтом тогда.


 
Johnmen ©   (2003-09-18 12:16) [14]

>dmtr © (18.09.03 11:03)

В этом нет проблем. Caption у TQRDBText не содержит значения поля. Свойство Lines так же не обслуживается.


 
dmtr ©   (2003-09-18 14:20) [15]

И какой выход


 
Johnmen ©   (2003-09-18 14:47) [16]

1. см. [11]
2. Заранее в дизайнтайме выставить необходимые размеры. М.б. с запасом.
3. Использовать TQRLabel. Но тогда "ручками", как сказано в [11].



Страницы: 1 вся ветка

Текущий архив: 2003.10.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
3-3719
AlexWeb
2003-09-13 15:33
2003.10.02
Вопрос по UPPER...


3-3779
AlexVA
2003-09-11 15:33
2003.10.02
как создать новое поле


1-3871
Tumcoat
2003-09-18 02:34
2003.10.02
Работа с case


3-3718
BorisSV
2003-09-15 11:32
2003.10.02
Отменить удаление используя ActionList => DataSetDelete


14-4075
Stalker
2003-09-14 19:54
2003.10.02
Высота долларов