delphi 的 qreport的问题:

nhlangzi 2004-05-02 10:11:32
delphi 的 qreport的问题:
我用的是DELPHI的QREPORT来做报表,经常要用几种不同的连续纸来打印报表,每次都要通过改变默认打印机的纸张来实现打印连续纸,这样太麻烦了,能不能用DELPHI的QREPORT能在不用改变默认打印机的纸张来实现打印连续走纸,如果DELPHI的qreport不能实现的话,

请问有那些报表软件可以实现
...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_shark 2004-05-09
  • 打赏
  • 举报
回复
上级qr到3.62就可以使用报表直接自定义纸张大小
imp1017 2004-05-09
  • 打赏
  • 举报
回复
关注
w98q98y98 2004-05-03
  • 打赏
  • 举报
回复
你不要再使用报表软件了,自己画吧。
仅能用于win98,winme
打印机设置使用自定义纸张
uses
加printers

var
device:array[0..(cchdevicename-1)] of char;
driver:array[0..(max_path-1)] of char;
port:array[0..32] of char;
prnhd,hdmode:thandle;
pdmode:pdevmode;
pdevmodebytes,pcbNeeded : DWORD;
DevMode: PDeviceMode;
PrnHdc : HDC;
DocInfo : PDocInfo;
NEW:HGDIOBJ;
LogRec: TLOGFONT;
OldFont, NewFont: HFONT;
begin
printer.GetPrinter(device,driver,port,hdmode);
if hdmode<>0 then
begin
pdmode:=globallock(hdmode);
if pdmode<> nil then
begin
pdmode^.dmPaperSize:=256;
pdmode^.dmPaperLength:=705; //设置纸的长度
pdmode^.dmPaperWidth:=4500;
pdmode^.dmFields:=pdmode^.dmFields or dm_paperlength;
pdmode^.dmFields:=pdmode^.dmFields or dm_paperwidth;
resetdc(Printer.handle,pdmode^);
globalunlock(hdmode);
end;
end;

printer.BeginDoc;
with printer do
begin
canvas.Font.Height:=42;
canvas.Font.Name:='黑体';
canvas.MoveTo(0,0);
canvas.TextOut(450,0,'*************');
canvas.Font.Height:=28;
canvas.Font.Name:='宋体';
if x_xdh=99 then canvas.TextOut(270,20,'[*************]');
canvas.TextOut(120,20,'(005)');
canvas.Textout(850,20,'*************');
canvas.TextOut(100,55,'****:****');
canvas.TextOut(260,55,'*************');
canvas.TextOut(500,55,'*************');
canvas.Rectangle(100,90,1250,140);
canvas.MoveTo(260,90);
canvas.LineTo(260,140);
canvas.MoveTo(400,90);
canvas.LineTo(400,140);
canvas.MoveTo(660,90);
canvas.LineTo(660,140);
canvas.MoveTo(850,90);
canvas.LineTo(850,140);
canvas.MoveTo(960,90);
canvas.LineTo(960,140);
canvas.MoveTo(1100,90);
canvas.LineTo(1100,140);
canvas.TextOut(110,100,'*************');
canvas.TextOut(270,100,' *************');
canvas.TextOut(410,100,'*************');
canvas.TextOut(670,100,' *************');
canvas.TextOut(860,100,'*************');
canvas.TextOut(970,100,' *************');
canvas.TextOut(1110,100,' *************');
end;
printer.enddoc;
end;
nhlangzi 2004-05-03
  • 打赏
  • 举报
回复
这不是太麻烦了吗

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧