|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с отчётом в QuickReport
Здравствуйте. Проблема такая:
Из предварительно созданного файла в процессе работы программы получаем данные и отправляем их QuickReport. BandType:rbDetail, в зависимости от того сколько наработали получаем в отчете разное число строк и картинки разного размера отправляемых в DetailBand. Для наглядности пример ниже... Пришлось размер DetailBand сделать максимально возможным. Вот это место не получается удалить, уходит много лишней бумаги. Подскажите если кто знает как DetailBandом можно обрезать лишнее место? |
#2
|
|||
|
|||
Удалять ничего не надо просто Band максимально близко тянешь в притык с последним Лейблом в данном случаи с Текстом3
|
#3
|
|||
|
|||
У меня размер картинки заранее не определен и размер текста всегда разный. Если Band максимально близко подтянуть к Лейблу, то в некоторых случаях картинки получаються обрезанными или текст (QRRichText).
Последний раз редактировалось YaroslavSh, 19.07.2008 в 19:27. |
#4
|
|||
|
|||
Ещё вопрос: почему компонент QRShape с параметром brush style = bsBDiagonal при печати полностью получается чёрный квадрат вместо штрихованного квадрата.
|
#5
|
||||
|
||||
А почему бы не посчитать размеры каждого нового полученного элемента и выставить все параметры програмно в он-лайне !
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#6
|
|||
|
|||
Тяжело, там более 50 вариантов, не хотелось бы для каждого конкретного случая писать своё. Неужели нельзя DetailBand1.size.height делать по последнему элементу?
|
#7
|
|||
|
|||
+1.
Band.OnPrint (вроде так, давно с QR не работал) тебе поможет. Вызывается перед собственно печатью. А с Шейпом - может стиля такого у принтера нету, вот он и берет другой. Или, что даже вероятнее, там есть ошибочка - не учитывается разрешение принтера. Т.е. шейп красится диагонально через, например, 2 пикселя. Но на принтере ты 2 пикселя не увидишь - мелкие больно - вот и получаешь закрашеный квадрат. Лучше делай через заливку серым цветом - вполне пристойно выглядит. |
#8
|
|||
|
|||
Цитата:
lmikle может BeforePrint ? |
#9
|
|||
|
|||
Скорее всего, я же говорю - давно не работал с QR, навскидку просто не помню как называется. Но таким фокусом пользовался.
|
#10
|
|||
|
|||
Цитата:
На счёт через заливку делать шейп, меня-то как раз интересует печать диагональной штриховки. |
#11
|
|||
|
|||
Вот быстро набросал отчет для наглядности на D7 QR 5.02.
Последний раз редактировалось YaroslavSh, 28.07.2008 в 08:49. |
#12
|
|||
|
|||
Цитата:
Тогда играй с кистью. На том же OnBeforePrint попробуй шейпу указать свою кисть. Может хоть так сработает. |
#13
|
|||
|
|||
Цитата:
Доигрался, но не с кистью, помоему тоже ничего. Может кому понадобиться. Идея не моя, но искал долго . var test: TBitmap; X, Y, kX, kY: Integer; test:= TBitmap.Create; test.LoadFromFile('test.bmp'); test.Transparent:=true; test.TransparentColor:=test.Canvas.Pixels[0, 3]; kX := Width DIV test.Width; kY := Height DIV test.Height; FOR X := 0 TO kX DO FOR Y := 0 TO kY DO QRImage1.Canvas.Draw(X*test.Width, Y*test.Height, test); Последний раз редактировалось YaroslavSh, 28.07.2008 в 22:37. |