请打印高手进来!我现在做一个基金领用登记卡,但打印时我想在每次打印时都能接着上一次的记录打印!即第n次就从第n行开始打印!(100分)

  • 主题发起人 主题发起人 wrksky
  • 开始时间 开始时间
W

wrksky

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在做一个基金领用登记卡,但打印时我想在每次打印时都能接着上一次的记录打印,
就象银行存折一样每存一笔打印都能接上一条记录打印,而不重叠打印,
这样在报表上应怎样处理才行呢?在打印该怎么写代码??
要怎样过滤才不发生重叠?请各位大侠指点一下好吗?
谢谢!非常感谢!!
 
可以直接控制打印机。从表中获取记录数,根据记录数对输出进行定位。
 
For:风中流云。能否给点源代码?就是怎么样直接控制打印机,然后怎么样进行定位!
谢谢!:)
 
procedure tdata.printcard(cs:integer;flag:boolean;str1,str2,str3:string);
var x,y:integer;
begin

//存
with printerdo

begin

canvas.Font.Name:='宋体';
canvas.Font.size:=9;
if flag then

begin

title:='存油';
x:=328;
end
else
//取
begin

title:='取油';
x:=540;
end;

cs:=cs mod 24;
if cs>=12 then
y:=-5+31*(cs mod 12)
else
y:=440+31*cs;
begin
doc;
canvas.textout(30,y,formatdatetime('yyyy"-"mm"-"dd" "hh":"mm"',now()));
canvas.TextOut(x,y,str1);
//存或取
canvas.textout(740,y,str2);//结余油量
canvas.textout(945,y,str3);//操作员
enddoc;
end;

end;
 
设置打印纸张大小, 直接输出到打印机
 
ColNam:array of string;//字段名
flx:string;
lxi:array of integer;//记录列线位置
ColItem:array of string;//列名
fcolcount:字段数
fhead:integer;//打印位置Y坐标
with printerdo

begin

for i:=1 to fcolcountdo

canvas.TextOut(lxi[i-1]+(lxi-lxi[i-1]-canvas.textwidth(colnam[i-1]))div 2,fhead,colnam[i-1]);
canvas.MoveTo(lxi[0],fhead);
canvas.LineTo(lxi[fcolcount],fhead);
canvas.moveto(lxi[0],fhead+flineheight);canvas.lineto(lxi[fcolcount],fhead+flineheight);
end;

 
多人接受答案了。
 
后退
顶部