全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:761
推到 Plurk!
推到 Facebook!

打印报表时打印出黑条?

尚未結案
fangwy
中階會員


發表:99
回覆:139
積分:62
註冊:2003-09-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-31 14:45:57 IP:218.5.xxx.xxx 未訂閱
我做报表时,因为有些报表无法用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;
系統時間:2024-07-07 20:34:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!