Главная страница
    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.008 c
1-14109
velk
2002-08-23 14:44
2002.09.05
Проблема с циклом for


3-13945
Vlad2
2002-08-16 06:49
2002.09.05
Проектирование БД


1-14142
Yaro
2002-08-23 23:24
2002.09.05
Писать в любую часть файла


3-13963
alexvan
2002-08-16 12:46
2002.09.05
EDBEngineError Key Violation


8-14175
Эдуард
2002-04-30 16:50
2002.09.05
Как убирать ненужные линии в tchart





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