打印报表时打印出黑条? |
尚未結案
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
我做报表时,因为有些报表无法用QReport实现所以采用TPrinter直接一行一行的送到打印机打印,但是却发现有时打印机打出的不是我送出去的字串,而是一条黑条,转送到文本文件显示全是ffff,确定送出的字串没错.为什么会这样?谢谢各位了.
下面是我的程序码:
procedure tRePrintF.EPS_Print;
var
JL1, JL2, JP1, diPos: integer;
i: word;
dsItem: string;
drPrice: Real;
begin
JL1 := 40;
JL2 := JL1 piTop;
JP1 := piLeft;
printer.BeginDoc;
printer.Canvas.Font.Size := 10;
printer.Canvas.TextOut(JP1 145, JL2, Lab1.Caption ':' edTax_no.text);
JL2 := JL2 JL1 10;
printer.Canvas.TextOut(JP1 120, JL2, Lab3.Caption ':' edOwner_Nm.text);
JL2 := JL2 JL1; if SYS_INVTYPE = '0' then
printer.Canvas.TextOut(JP1 190, JL2, Lab3.Caption ':' cboxPayer_Nm.text)
else if SYS_INVTYPE = '1' then
printer.Canvas.TextOut(JP1 190, JL2, Lab3.Caption ':' pbInvNo); if trim(cboxPay_Mode.Text) = '支票' then
begin
printer.Canvas.TextOut(JP1, JL2, '经营项目名称');
printer.Canvas.TextOut(JP1 300, JL2, labChq.Caption);
printer.Canvas.TextOut(JP1 390, JL2, edChq_no.text);
printer.Canvas.TextOut(JP1 780, JL2, ' 金额');
end
else
begin
printer.Canvas.TextOut(JP1, JL2, '经营项目名称');
printer.Canvas.TextOut(JP1 780, JL2, ' 金额');
end;
JL2 := JL2 JL1 10;
diPos := JL2;
DBGrid1.DataSource.DataSet.First;
for i := 1 to DBGrid1.DataSource.DataSet.RecordCount do //项目打印
begin
dsItem := DBGrid1.DataSource.DataSet.FieldByName('Item_nm').AsString;
printer.Canvas.TextOut(JP1, JL2, dsItem);
drPrice := DBGrid1.DataSource.DataSet.FieldByName('Item_Amt').AsFloat;
printer.Canvas.TextOut(JP1 780, JL2, Format('.2f', [drPrice]));
JL2 := JL2 JL1 - 10;
if DBGrid1.DataSource.DataSet.eof = false then DBGrid1.DataSource.DataSet.Next;
end;
if i > 5 then
JL2 := JL2 JL1
else
JL2 := diPos 150; //JL2 JL1-10 if SYS_INVTYPE = '0' then
printer.Canvas.TextOut(JP1 280, JL2, Lab3.Caption ':' edTotal_Price.text)
else if SYS_INVTYPE = '1' then
printer.Canvas.TextOut(JP1 280, JL2, Lab3.Caption ':' '退' edTotal_Price.text); JL2 := JL2 JL1;
printer.Canvas.TextOut(JP1 120, JL2, Lab11.Caption ':' trim(meInv_no.text));
printer.Canvas.TextOut(JP1 710, JL2, Lab2.Caption ':' edDevice_no.text);
JL2 := JL2 JL1;
printer.Canvas.TextOut(JP1 195, JL2, Lab13.Caption ':' edInv_code.text);
printer.Canvas.TextOut(JP1 690, JL2, Lab12.Caption ':' edOper_Nm.text);
JL2 := JL2 JL1;
printer.Canvas.TextOut(JP1 195, JL2, '电子存根');
JL2 := JL2 JL1;
printer.EndDoc;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |