Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.031 c
1-14057
kofman
2002-08-24 00:11
2002.09.05
Как изменить размер формы если ее BorderStyle= bsNone


1-13979
Елена
2002-08-23 06:38
2002.09.05
Настраиваемая панель инструментов в стиле Microsoft Office 2000


7-14297
ACE
2002-06-24 21:31
2002.09.05
Серийный номер винта


1-13990
DIM0N
2002-08-25 21:46
2002.09.05
Ресурсы


14-14256
Igorek
2002-08-08 14:27
2002.09.05
Теория информации





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский