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

Вниз

Печать TDBGrid   Найти похожие ветки 

 
Nikolai_S   (2002-08-16 15:50) [0]

Как быстро распечатать содержимое из TDBGrid. Можно конечно TQuickReport использовать. Но может есть какой-то более быстрый и простой метод?


 
Mike Kouzmine   (2002-08-16 15:58) [1]

Можно prReport


 
Nikolai_S   (2002-08-16 16:06) [2]

А что такое prReport? Я с этим не сталкивался. Компонент какой-то?


 
Mike Kouzmine   (2002-08-16 16:07) [3]

Да, в кладовке посмотри


 
A7exander   (2002-08-16 16:10) [4]

я использую TPrintDBGridEh из состава Ehlib


 
RDA   (2002-08-16 16:27) [5]

Я как-то использовал простой способ (по моему мнению). В зависимости от того кто источник данных - делал так

..............
var
PixelsX,PixelsY:Integer;
implementation
..............
procedure GetPrinter;
begin
PixelsX:=GetDeviceCaps(Printer.Handle,LogPixelsX);
PixelsY:=GetDeviceCaps(Printer.Handle,LogPixelsY);
end;

function GetX(X:integer):integer; { переводит координаты из мм в пиксели }
begin
GetX:=round(PixelsX/25.4*X);
end;

function GetY(Y:integer):integer; { переводит координаты из мм в пиксели }
begin
GetY:=round(PixelsY/25.4*Y);
end;

Сам вывод на принте не зависимо есть грид или нет, главное чтобы набор данных был.

procedure ...............(Y:Integer);
var
Y:Integer;
begin
Y:=0;
while not Table.Eof (или Query.Eof) do
begin
Kvadrat(80,Y,120,Y+20,8,Table.FieldByName("номер").AsString);
Kvadrat(120,Y,250,Y+20,8,Table.FieldByName("текст").AsString);
Kvadrat(250,Y,280,Y+20,8,Table.FieldByName("значение").AsString);
Y:=Y+20;
Table.Next (Query.Next);
end;
end;

В общем передаещ в процедуру отступ страницы и вперед. Надеюсь сам разберешься как переходить на другую страницу, и в том что высота строк может быть больше 20 мм (считай длину строки или по другому), а процедуру Kvadrat описал так:

procedure Kvadrat(X,Y,X1,Y1,FSize:Integer;Text:String);
var
R:TRect;
begin
R:=Rect(GetX(X),GetY(Y),GetX(X1),GetY(Y1));
with Printer.Canvas do
begin
Font.Size:=FSize;
Rectangle(R.Left-5,R.Top-2,R.Right+2,R.Bottom+2);
DrawText(Handle,PChar(Text),-1,R,dt_WordBreak or dt_Left);
end;
end;


Рад если помог. Если что на мыло - писал по памяти.



 
zx   (2002-08-16 17:43) [6]

Использую EhLib.
Очень хорошая штука!!!


 
Nikolai_S   (2002-08-16 18:00) [7]

to A7exander & zx.
Я прочитал про EhLib. Да штука классная, но не бесплатная. Хотелось бы дешево, но сердито, как предложил RDA. Но все равно спасибо.


 
wicked   (2002-08-16 22:57) [8]

2 Nikolai_S ©
ehlib бесплатен для тех, кто знает русский и у кого русский (многоязычный) windows...
вот ссылка на сайт автора - http://www.farpost.com/personal/dmitryb
там всё написано.... :)



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

Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-14003
Melkosoft
2002-08-23 09:27
2002.09.05
Реестр


3-13892
Luchkin
2002-08-05 16:06
2002.09.05
Отображение/редактирование живых запросов (D6+MSSQL+ADO)


3-13898
dimanew
2002-08-14 05:12
2002.09.05
Программа писалась с использованием BDE версии 5.01, будет


14-14240
Razpizdyi
2002-08-10 14:48
2002.09.05
MSDN - Что это за справка, и где ее искать?


1-14155
stas_a
2002-08-25 05:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский