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

Вниз

вопрос по построению отчетов   Найти похожие ветки 

 
stud ©   (2003-07-22 13:38) [0]

смысл в следующем: отчет по бд. QRDBText1.autostretch=true при этом текст в кампоненте автоматически подгоняется по высоте. так вот при этом еще и должна отображаться рамка вокруг этого компонента. но высота зависит от количества текста и рамка не рисуется полностью если высота текста не постоянна для всего отчета. как с этим бороться? и какие обработчики использовать?
onprint в компоненте результатов не дает


 
Johnmen ©   (2003-07-22 14:03) [1]

Бороться можно единственным способом :
1. Убрать autostretch, autosize добавить wordwrap. Перед выводом - самому вычислять и устанавливать height.
2. Отказаться от рамки (самое простое).


 
stud ©   (2003-07-22 14:42) [2]

а вопрос такой, можно ли во время печати банда узнать его текущий размер?


 
Anatoly Podgoretsky ©   (2003-07-22 14:49) [3]

После печати, а во время только текущий.


 
stud ©   (2003-07-22 15:01) [4]

а через какое св-во?
и в обработчие какого события это лучше сделать?


 
stud ©   (2003-07-22 17:50) [5]

почему такая конструкция не работает?
qrdbtext1.height:=detailband1.height
в обработчике afterprint detailband


 
stud ©   (2003-07-23 09:20) [6]

может кто-то всетаки знает как в qrep нарисовать нормальную таблицу с переменной высотой столбцов


 
Dmitriy O. ©   (2003-07-23 09:34) [7]

А мне не понятно в чем сложность каждая строка это +15 к Hight(шрифт 10) очерчиваеш Frame если на Detail Band то увеличиваеш и его высоту.


 
stud ©   (2003-07-23 09:49) [8]

в том и дело, что программно расчитываю высоту и изменяю ее, но при печати на принтер возникает черти-что. полосы на всю высоту листа!


 
Johnmen ©   (2003-07-23 09:51) [9]

А на экране - нормально ?


 
stud ©   (2003-07-23 09:58) [10]

а на экране отлично!


 
Johnmen ©   (2003-07-23 10:05) [11]

Как печатаешь ?
Какой принтер ?


 
stud ©   (2003-07-23 10:08) [12]

сначала препаре, превью, принт.
принтер HPlj5000


 
Johnmen ©   (2003-07-23 10:19) [13]

Попробуй сразу Print, без Preview и Prepare. Каков результат ?


 
Dmitriy O. ©   (2003-07-23 10:26) [14]

Глюк может быть еще в том что отчет в Qrp составляется два раза при составлении отчета и при его печати. Сохрани состаленный отчет в файл qrp потом открой и распечатай и если все ОК то глюк в этом. (этот глюк вылезает например при расчетах в Before Print) Обнуляй все установки перед составлением отчета.


 
Anatoly Podgoretsky ©   (2003-07-23 10:33) [15]

HP пугает


 
stud ©   (2003-07-23 10:52) [16]

если сразу print то результат лучше, но все равно немного нен то.
код такой:

for i:=0 to 4 do k:=max(k,quickrep1.QRPrinter.Canvas.TextWidth(evrydayq.Fields[i].Value));
i:=floor(k/169)+1;
DetailBand1.Height:=15*i;
qrdbtext1.Height:=DetailBand1.Height;
qrdbtext2.Height:=DetailBand1.Height;
qrdbtext3.Height:=DetailBand1.Height;
qrdbtext4.Height:=DetailBand1.Height;
qrdbtext5.Height:=DetailBand1.Height;
DetailBand1.Refresh;
k:=0;

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


 
stud ©   (2003-07-23 11:43) [17]

и тишина......


 
Johnmen ©   (2003-07-24 09:58) [18]

И вот тишина нарушена...:)))

>stud ©

Примерное описание решения проблемы (может не лучшее, но реально работающее) :
-- прописываем BeforePrint для бенда :
- запоминаем ширину "текста" W1
- делаем ему автосайз и получаем ширину "текста" W2
- отменяем автосайз и возвращаем W1
- делим W2 на W1, округляем к большему целому, -> N
- зная высоту "текста" для одной строки H получаем искомую высоту = N*(H+x), которую и выставляем (x - межстрочный промежуток, скорее всего = 1).



 
stud ©   (2003-07-24 11:04) [19]

в общем вышеописаннай код далеат тоже самое, только foor на ceil поменять надо.
но после всех этих манипуляций на экране нормаьлное изображение, а на бумаге черт знает что!
решил немного по другому. бросил шейп на бенд и высоту этого шейпа сделал примерно на 5-6 строк текста.работает, но если высота будет больше то опять будут пробелы в сетке таблицы, но это помоему самый простой выход из положения



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

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

Наверх




Память: 0.51 MB
Время: 0.018 c
3-20439
Faeton
2003-07-16 16:53
2003.08.07
Копирование базы InterBase после Backup


9-20375
dj karies
2003-02-08 19:02
2003.08.07
КОЛОБОК 3D


1-20625
Zhuchok
2003-07-25 01:53
2003.08.07
TaskBar


14-20740
Igor__
2003-07-20 18:21
2003.08.07
Потребляемая мощность компутера


14-20801
Jumbo
2003-07-21 22:36
2003.08.07
ReadFile