Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-20588
AlexVM
2003-07-24 11:09
2003.08.07
Как управлять ActionManager ом в runtime


1-20566
Yurique
2003-07-24 04:06
2003.08.07
No BDE


1-20531
dima_matrix
2003-07-25 21:29
2003.08.07
Запуск копии функции


4-20853
Laxer
2003-06-06 14:18
2003.08.07
Программное создание папки


14-20709
Ivolg
2003-07-23 11:11
2003.08.07
Эквалазер!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский