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

Вниз

Есть проблема у меня – нужен совет   Найти похожие ветки 

 
Man-In-Red ©   (2002-08-23 23:04) [0]

Помогите пожалуйста!

Есть StringGrid, и три Edit’а, все с каким-то текстом, нужно распечатать содержимое этих всех компонентов в виде отчета на одном листе, как это можно реализовать?
Может будут какие-то идеи, помогите пожалуйста!
Я пробовал рисовать на канве Image, потом печатать, вышло, но это все зависит от разрешения экрана, размера шрифта которое установлено в Windows, и т.д… иногда получается, что текст налазит один на одного…
Нужен совет!
Заранее благодарен!


 
Man-In-Red ©   (2002-08-24 01:49) [1]

Мастерааа, мне очень нужна ваша помощь!


 
Man-In-Red ©   (2002-08-24 12:45) [2]

Верней я сразу рисовал на канве принтера, у меня печатается нормально, а на другой машине текст налазит один на одного, это наверное зависит от шрифта?
Вы даже не можете представить себе, как это для меня важно.
Помогите пожалуйста, заранее благодарен!


 
ЮЮ ©   (2002-08-24 12:56) [3]

Только совет :-)
Анализируй TPrinter.PageWidth и TPrinter.PageHeight во время работы программы и те, что имеешь у тебя во время разработки.
Соответственно переопределяй TCanvas.Font.Height


 
Man-In-Red ©   (2002-08-24 13:04) [4]

А как можно вообще по-другому распечатать на одном листе текст из StringGrid’а и трех Edit’ов?


 
ЮЮ ©   (2002-08-24 13:16) [5]

Только на принтере, как же ещё :-)
Или на TPrinter-е, или с помошью какого-либо построителя отчётов, который уж наверняка смотрит на характеристики принтера


 
Man-In-Red ©   (2002-08-24 13:26) [6]


> ЮЮ © (24.08.02 13:16)

Я имею в виду алгоритм прорисовки текста в виде отчета, чтобы не рисовать на канве Image а потом печатать, может компонента есть?


 
Polevi ©   (2002-08-24 14:27) [7]

есть


 
Song ©   (2002-08-24 14:36) [8]

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


 
Man-In-Red ©   (2002-08-24 22:26) [9]


> Polevi © (24.08.02 14:27)

Если и вправду есть, то пожалуйста поделитесь! Очень нужно!
> Song © (24.08.02 14:36)

Если честно, то мне это ничего не говорит…

Заранее благодарен!


 
Anatoly Podgoretsky ©   (2002-08-24 22:44) [10]

Не мучайся, используй QuickReport мз поставки


 
Dm9   (2002-08-25 05:33) [11]

А, может, в Excel засунуть, а потом напечатать?


 
Man-In-Red ©   (2002-08-25 12:34) [12]


> Anatoly Podgoretsky © (24.08.02 22:44)

А можно хоть какой-нибудь пример, я с ним некогда не работал… буду очень благодарен!
> Dm9 (25.08.02 05:33)

Это очень тупой совет…


 
Polevi ©   (2002-08-25 13:20) [13]

2Man-In-Red ©
Если ты умеешь "рисовать на канве Image" что тебе мешает рисовать на канве принтера ?


 
Man-In-Red ©   (2002-08-25 13:54) [14]

Так я ж говорю, что потом рисовал на канве принтера, все прекрасно получилось, но дело не в этом, дело в том, что все это зависит от разрешения экрана, и размера шрифта (мелкий, средний, большой), и иногда так получается, что одни строки налазят на другие ну и т.д…
Мне бы компоненту хорошую для таких работ, чтоб проблем меньше было, например, QuickReport, но как с ним работать, не могли бы вы пример показать, а может есть другие компоненты? Буду очень благодарен!


 
Polevi ©   (2002-08-25 14:00) [15]

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


 
Anatoly Podgoretsky ©   (2002-08-25 14:12) [16]

Man-In-Red © (25.08.02 13:54)
Примеры есть в поставке Дельфи


 
Polevi ©   (2002-08-25 14:23) [17]

вот тебе пример, чтоб ничего не налазило

procedure TPrintGrid.PrintString(s: string);
var
OutRect:TRect;
TxtHeight:integer;
begin
OutRect.Left:=0;
OutRect.Right:=FPrinter.PageWidth;
TxtHeight:=DrawText(FPrinter.Canvas.Handle, PChar(s), Length(s), OutRect, DT_LEFT or DT_WORDBREAK or DT_CALCRECT);

OutRect.Left:=0;
OutRect.Top:=AmountPrinted;
OutRect.Right:=FPrinter.PageWidth;
OutRect.Bottom:=OutRect.Top+TxtHeight;

SetBkMode(FPrinter.Canvas.Handle, TRANSPARENT);
DrawText(FPrinter.Canvas.Handle, PChar(s), Length(s), OutRect, DT_LEFT or DT_WORDBREAK);
AmountPrinted:=AmountPrinted+TxtHeight;
end;


 
Man-In-Red ©   (2002-08-25 14:37) [18]

Уж лучше я буду пользоваться QuickReport :)


 
Polevi ©   (2002-08-25 14:43) [19]

желаю удачи, она тебе понадобиться


 
Man-In-Red ©   (2002-08-25 14:51) [20]


> Polevi © (25.08.02 14:43)

:)


 
Polevi ©   (2002-08-25 15:03) [21]

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


 
Man-In-Red ©   (2002-08-25 15:15) [22]

А каким образом можно в QuickRep засунуть текст из StringGrid?


 
Man-In-Red ©   (2002-08-25 15:16) [23]

Начинается :)


 
Man-In-Red ©   (2002-08-25 15:17) [24]

Довольно сложный он для понимания, может где почитать можно о QRepe?


 
Man-In-Red ©   (2002-08-25 16:03) [25]

А каким образом можно в QuickRep засунуть текст из StringGrid?
Please!!!


 
Ketmar ©   (2002-08-25 16:31) [26]

2Polevi:
а что посоветуете вместо глюкрепорта? Я вот скачал FreeReport, так это вообще нечто. см. Мое сообщение:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1030278621&n=3

Satanas Nobiscum! 25-Aug-XXXVII A.S.


 
Man-In-Red ©   (2002-08-25 17:28) [27]

А у меня установился без проблем!


 
Man-In-Red ©   (2002-08-25 17:34) [28]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1030282327&n=0
Плизз!!!


 
Polevi ©   (2002-08-25 17:45) [29]

Для задач вроде Man-In-Red ©
>Есть StringGrid, и три Edit’а, все с каким-то текстом, нужно >распечатать содержимое этих всех компонентов в виде отчета на >одном листе, как это можно реализовать?
лучше ручками все рисовать, IMHO

для сложных БД-отчетов я пользую FastReport (не путать с FreeReport :)

2Man-In-Red ©
QReport и FastReport ориентированы на работу с датасетами - у тебя их нет. В FastReport надо в твоем случае либо создавать отчет вручную, либо использовать frUserDataset (для печати StringGrid"a)

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



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

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

Наверх




Память: 0.53 MB
Время: 0.016 c
14-14238
BAHO
2002-08-08 02:07
2002.09.05
Прокси сервер в Delphi6 на Indy


4-14335
mifi
2002-06-06 22:15
2002.09.05
ExtractIcon + nvsvc32.exe


1-14067
панкер
2002-08-27 01:10
2002.09.05
кукисы маст дай!


4-14318
asmer
2002-07-02 14:34
2002.09.05
EditBox


14-14270
vasya_dvc
2002-08-10 23:23
2002.09.05
Лицензирование