fastreport:记录有多长,我们就打多远! ( 积分: 100 )

  • 主题发起人 主题发起人 regentsoft
  • 开始时间 开始时间
R

regentsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
fastreport:记录有多长,我们就打多远!
最近研究报表打印,是关于服装方面打印飞仔的,飞仔打印是连续送纸的,根据你的服装
款号,工序多少与数量多少不等来打印飞仔。所以,如果工序大,数量多,打印的飞仔就
长。反之则相反。
纸张的宽度为2100(单位是:0.1MM)。
纸张不限长度!
我的想法是:通过数据集的记录量,乘上一条记录所打印需要的高度,得到我这里产生
的数据集的共需要生成的fastreprot的页面高度。宽度是固定的2100。
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
ss:integer;
begin
frReport1.LoadFromFile('E:/temp/Untitled.frf');
ss:=strtoint(edit1.text)*adoquery1.RecordCount ;
//edit1就是我单条记录的高度
frReport1.Pages[0].ChangePaper($100,2100,ss,-1,poPortrait);
frReport1.ShowReport;
end;

这样后,问题是解决了。当我设置好了单条高度,打印400条或是500条,都很正常。
可是我一回到40条,或是50条的时候,页面就不够了,这里我再将单条记录的高度增加
一点,在40或是50条记录正常时,再打印400或是500条记录时,后面又有4CM左右的空余!
我认为:这是由于Fastreprot的纸的间距造成的,但是我已将之全设为0,而为何还会有间距呢?
打印格式:
http://www.delphibbs.com/keylife/images/u247871/ddd.JPG
 
用RM吧,它有即打即停功能
 
忘了突出重点了:
格式非常简单,主要是要对齐纸张。因为纸张是设计好的!
 
用RM吧,它有即打即停功能
-------------------------------------------
FR我想也能实现吧,我只会用FR呀
 
设置page option里的margin的选项:
stretch to print area 打 勾
然后有好转!
 
鸽子 10:05:52
你是针打吗?
刘祥 10:06:05
Y
鸽子 10:06:10
如果 是 直接 用 文本打印
鸽子 10:06:33
就是 copy tmp.txt prn
鸽子 10:06:52
或者 assignFile(prn)
鸽子 10:07:47
这样 速度 很快 而且 是 一行一行的
而不是 一页一页的
 
1 打开Fastreprot,进入report options,选择打印机为:virtual printer
2 回到pages1,设置Size为Custom
3 再选择page options,选择 margins,将stretch to printer area打勾!
这样就可以了!
 
多人接受答案了。
 
后退
顶部