关于打印设置的问题?(100分)

T

tlihui

Unregistered / Unconfirmed
GUEST, unregistred user!
1,如何在一张未打印满的报表中打印空表格?增加空记录吗?
2,如何改变打印机得进纸方式?及如何设置打印机的横、纵向进纸?
我在QuickReport中设置为横向,但在针式打印机中必须纵向上纸才可以打印全部记录。
而打印纸为横向带孔打印纸,请问怎么设置?
 
设:QuickReport.DataSet=nil;
将QrLabel放在BetailBand里,
在QuickReport的OnNeedData事件里写代码为Qrlabel.Caption赋值,
并控制MoreData属性True,继续打印,False不继续打印
var
vl_PageRow: Integer;
{每页打印的总行数}
vl_CurrentRow: Integer;
{当前打印的行号}
{$R *.DFM}
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
vl_PageRow := 20;
{第页打印20行}
vl_CurrentRow := 0;
{当前为第0行}
Query1.First ;
end;

procedure TForm1.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := vl_CurrentRow = vl_PageRow;
{控制是否继续打印}
{如果数据没打印完,打印数据}
if not Query1.Eof then
begin
with Query1do
begin
QRLabel1.Caption := Fields[0].AsString;
QRLabel2.Caption := Fields[1].AsString;
QRLabel3.Caption := Fields[2].AsString;
Next;
end;
end
else
{数据已批印完成,打印空行}
begin
QRLabel1.Caption := '';
QRLabel2.Caption := '';
QRLabel3.Caption := '';
end;

inc(vl_CurrentRow);
end;



 
你的第二个问题,在控制面板,打印机设置里,直接将纸张大小改为横向
 
第一个问题你这样实现是不是太麻烦了?第二问题我试试。
 
1用FAST REPORT或REPORT MACHINE,只需加一句判断语句即可.
 
第二个问题无法解决吗?
 
没听说进纸方式还有横向、纵向之分,应该是打印方式是横向还是纵向吧。
只要把QuickRep的属性page-orientation设置为poLandscape不就可以了。
 
看来你只好用自定义纸张了,
注意:要将Windows里纸张类型与你QuickReport纸张设得一致
 
不管怎么设置,QuickReport都不能实现报表的横向输出。我是指在针式打印机上用带孔的打印纸。
 
那就不要用QuickReport进行打印,干脆自己写程序让其按当前设定纸张进行满幅
打印就可以了。
 
呵呵,我也想这么做可是报表太多啊!
 
看来没好方法了啊,买单!
 
顶部