寻求一个打印DBGrid表的控件,我在源码空间下载了N多,都不能正常安装(10分)

  • 主题发起人 主题发起人 foxgirl
  • 开始时间 开始时间
F

foxgirl

Unregistered / Unconfirmed
GUEST, unregistred user!
寻求一个打印DBGrid表的控件,我在源码空间下载了N多,都不能正常安装
希望找一个可以正常安装的功能也不错的dbgrid打印控件,谢谢
 
给你一个函数。
//打印函数
function TfrmInfo.PrintDblist(Db:Tdbgrid;Qprint:TAdoquery):boolean;
var
PointX,PointY:integer;
PointScale,PrintStep:integer;
s:string;
x,y:integer;
i:integer;
LeftBlank,RightBlank, TopBlank,BottomBlank:integer;
begin
//获取当前打印机的分辨率
{ fontname:='宋体';
fontsize:=10;
}
LeftBlank:=1;
//定义页边距,单位厘米
RightBlank:=1;
TopBlank:=1;
BottomBlank:=1;
result:=False;
PointX:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSX)/2.54);
PointY:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSY)/2.54);
//根据打印机和屏幕的分辨率计算出从屏幕转换到打印机的比例 
PointScale:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSX)/Screen.PixelsPerInch+0.5);
//横向打印
// printer.Orientation:=poLandscape;
//打印的字体和大小
//printer.Canvas.Font.Name:=Fontname;
//printer.canvas.Font.Size:=Fontsize;
//根据字体的大小确定每行的高度
S:='计算机';
PrintStep:=printer.canvas.TextHeight(s)+16;
//打印的起点位置
x:=PointX*LeftBlank;
y:=PointY*TopBlank;
//Qprint是DBGrid1所连接的数据源
if (Qprint.Active=true) and (Qprint.RecordCount>0) then
begin
printer.begin
Doc;
Qprint.First;
while not Qprint.Eofdo
begin
//打印DBGrid中的所有列
for i:=0 to DB.FieldCount-1do
begin
if (x+DB.Columns.Items.Width*PointScale)<=(Printer.PageWidth-PointX*RightBlank) then
begin
//画表格线
//每页的第一行打印表头
Printer.Canvas.Rectangle(x,y,x+DB.Columns.Items.Width*PointScale,y+PrintStep);
if y=PointY*TopBlank then
Printer.Canvas.TextOut(x+8,y+8,DB.Columns.Title.Caption)
else
Printer.Canvas.TextOut(x+8,y+8,DB.Fields.asString);
//计算下一需要打印列的横坐标
end;
x:=x+DB.Columns.Items.Width*PointScale;
end;
if not (y=PointY*TopBlank) then
Qprint.next;
x:=PointX*LeftBlank;
y:=y+PrintStep;
//换页
if (y+PrintStep)>(Printer.PageHeight-PointY*BottomBlank) then
begin
Printer.NewPage;
y:=PointY*TopBlank;
end;
end;
//begin
2
printer.EndDoc;
Qprint.First;
// Application.MessageBox(,32);
end;
//begin
1
end;
 
谢了,可我要直接可以用的控件,我下了很多,安装都不正常,老是少了一些文件
 
用EhLib 很好的
 
是啊,使用EhLib 中的 DBGridEh 直接就可以将看到的内容打印出来
而且使用方法基本上包含DBGrid的所有内容(当然还有更精彩的内容)
 
ehlib太好用了,特别对于用DBGrid来显示数据并打印。
不妨试试
 
ehlib我一直用它,
 
OK,那我去see see
 
多人接受答案了。
 
去哪下在EhLib这个控件啊
我也想试试我也是新手,请大家多多指教。
 
后退
顶部