Форум: "Основная";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
ВнизЕсть проблема у меня – нужен совет Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.008 c