麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Delphi > 正文

用delphi編寫醫(yī)院的復(fù)雜報(bào)表

2019-11-18 18:56:55
字體:
供稿:網(wǎng)友
江蘇省無錫市中醫(yī)醫(yī)院電腦房
袁波
---- 我院的信息管理系統(tǒng)采用delphi編程,由于各科要求不同,報(bào)表形式也多種多樣,編寫起來讓人頭痛。delphi運(yùn)行在WINDOWS平臺(tái)下,打印同DOS下完全不同,而Quick Report即難以控制又占用資源,對(duì)于一個(gè)稍復(fù)雜的、有特殊要求的報(bào)表,Quick Report無法實(shí)現(xiàn)。這里介紹幾個(gè)在編程中遇到的比較典型的報(bào)表的實(shí)現(xiàn)方法。

---- 1、哪個(gè)單位的財(cái)務(wù)科都有幾本厚厚的臺(tái)帳,我院財(cái)務(wù)科提出打印藥庫(kù)的臺(tái)帳,好脫掉手工帳,也算是辦公現(xiàn)代化了,要求合情合理,院長(zhǎng)也說應(yīng)當(dāng)如此。看著財(cái)務(wù)科提供的紅綠相間的、統(tǒng)一印制的、行間距3毫米的臺(tái)帳專用小卡片,我不由想到中國(guó)人節(jié)儉的美德。考慮到每個(gè)藥品至少打印一張,而且表格線一個(gè)都不能少,加上中醫(yī)院藥品有二千多種,所以這個(gè)報(bào)表必須用激光打印機(jī)來打?。ㄖ劣谌绾巫屧洪L(zhǎng)同意購(gòu)買激光打印機(jī),則是另一回事,辦公自動(dòng)化哪能沒有代價(jià)呢)。程序?qū)崿F(xiàn)的思路基本上是把打印紙當(dāng)做畫布在上面畫一個(gè)個(gè)小矩形,具體由以下幾個(gè)過程實(shí)現(xiàn):(設(shè)Form名為Ttzview)。

先在程序中定義二個(gè)類:
titlerecord=record
Currect:Trect;
Atitle:string;
end;
detailrecord=record
Arect:Trect;
alignment:Word;
end;

---- 再建立以下四個(gè)過程;
---- RectDraw(Acanvas:Tcanvas;s:string;R:Trect;frame:boolean;position:word);

---- 這個(gè)過程就是畫矩形用的,frame決定是否畫線(這里當(dāng)然要畫啦!);

---- PRintinitit(firsttop,firstleft:integer);

---- 這個(gè)過程是初始化用的,就是定義各個(gè)小矩形在紙上的位置;

---- printtitle(acanvas:Tcanvas);

---- 這個(gè)過程是打印表頭的,因?yàn)楸眍^的字總是要大一些;

---- printdetail(acanvas:Tcanvas;Qtz:Tdataset;acount:integer;firstpage:integer);

---- 這個(gè)過程才是打印具體內(nèi)容的,一頁(yè)打印40行,不夠就換頁(yè),總之一頁(yè)只能是一個(gè)藥品;

---- printhj(acanvas:Tcanvas);

---- 一看就知道,這個(gè)過程就是打印合計(jì)的啦!

---- 只要建個(gè)Botton,順序調(diào)用printinitit,printtitle,printdetail,printhj這四個(gè)過程就行了,

---- (調(diào)用格式:printtitle(printer.canvas);)

---- 對(duì)了,Qtz就是查詢出來的臺(tái)帳數(shù)據(jù),如何生成的這里就不談了。

---- 具體程序如下

---- 此程序在delphi1,delphi3版本W(wǎng)IN3.2,WIN95,WIN97,WIN98平臺(tái)下運(yùn)行通過,順便提供臺(tái)帳數(shù)據(jù)庫(kù)的庫(kù)結(jié)構(gòu)

---- 2、非常復(fù)雜,無法取巧的報(bào)表

---- 我院腫瘤科需要打印病人的病案,這可是特色??片F(xiàn)代化建設(shè)的一部分,衛(wèi)生局要來檢查的,所以必須完成任務(wù)。每一個(gè)病案有100多個(gè)項(xiàng)目,若用Qreport,中間如果要加減一個(gè)項(xiàng)目(這事常有),幾十個(gè)項(xiàng)目的調(diào)整排列會(huì)使人昏倒。我一下子建立100多個(gè)臨時(shí)變量,在虛擬的畫布上畫啊畫,運(yùn)行在我的PII233,64M內(nèi)存的機(jī)子上倒是順順當(dāng)當(dāng)?shù)模贿^換到腫瘤科的486,8M內(nèi)存的機(jī)子上時(shí)(大家別笑),系統(tǒng)堆棧馬上溢出,所以只好祭出指針大法(我的編程水平好象又有長(zhǎng)進(jìn),竊喜),方法如下:

先建立titleprint類:
titleprint=^Titlerecord;
titlerecord=record
Currect:Trect;
Atitle:string[50];
end;
再建立過程printnow(Form的名稱叫
zlk,printdot就是打印機(jī)的點(diǎn)數(shù),一般針打是180);
procedure Tzlk.printnow(acanvas:Tcanvas);
var i,x,y,pc_count:integer;
myprint:array[0..200] of titleprint;
begin
firsttop:=round(int(0.5/2.54*printdot));
firstleft:=round(int(0.1/2.54*printdot));
rowheight:=round(int(0.7/2.54*printdot));
x:=0+firstleft;y:=round(int
(1.3/2.54*printdot))+firsttop;
pc_count:=0;
inc(pc_count); new(myprint[pc_count]);
myprint[pc_count]^.currect:=rect
(x+round(int(0.1/2.54*printdot))+firstleft,y,
x+round(int(3.0/2.54*printdot))+firstleft,
y+firsttop+round(int(0.5/2.54*printdot)));
myprint[pc_count]^.atitle:=Lname.
caption+DBname.text;
ACanvas.MoveTo(myprint[pc_count]^.
currect.left,
myprint[pc_count]^.currect.top-round
(rowheight/5));
{下面的四行還要重復(fù)100多次,基本差不多,
就不都寫出來賺稿費(fèi)了}
inc(pc_count); new(myprint[pc_count]);
myprint[pc_count]^.currect:=scalerect(
myprint[pc_count-1]^.currect,round(int
(2.5/2.54*printdot)),0);
myprint[pc_count]^.atitle:=Lxb.caption+Cxb.text;
ACanvas.LineTo(myprint[i]^.currect.right,
myprint[i]^.currect.top-round(rowheight/5));
.......

{打印}
printtitle(acanvas);
{這個(gè)函數(shù)就不提供了,表頭不要也沒關(guān)系}
for i:=1 to pc_count do
begin
RectDraw(Acanvas,myprint[i]^.atitle,
myprint[i]^.currect,false,
dt_left or dt_singleline or dt_vcenter);
end;
dispose(myprint[pc_count]);
{別忘了把指針占用的內(nèi)存釋放}
end;

---- 最后建個(gè)Botton,加個(gè)是否真的打印的判斷,再調(diào)用這幾個(gè)函數(shù)就行了。
---- (調(diào)用格式:printtitle(printer.canvas);)

---- 看了以上兩個(gè)例子,是不是覺得WINDOWS下的打印其實(shí)很簡(jiǎn)單,就跟你手工畫表一樣,而且表格內(nèi)容的位置是居中、居左、還是居右,全由打印內(nèi)容的Alignment決定,打印格式由內(nèi)容的Display Format決定,用不著自己去算,方便極了。


上一篇:如何用Delphi編寫自己的可視化控件

下一篇:使用Delphi獲取系統(tǒng)信息

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 国产艳妇av视国产精选av一区 | 精品国产91久久久久久久妲己 | 日本在线观看中文字幕 | 日本在线视频一区二区三区 | 污版视频在线观看 | 成人在线视频免费看 | 国产精品久久久久久模特 | 欧美色大成网站www永久男同 | 欧美精品一区自拍a毛片在线视频 | 成人免费福利网站 | 亚洲成人在线免费 | av免费不卡国产观看 | 欧美成人小视频 | 免费看性xxx高清视频自由 | 日韩电影一区二区 | 国产午夜精品一区二区三区嫩草 | 超碰97人人艹 | 国产一区二区精品在线观看 | 国产一级免费电影 | 久久精品小短片 | 欧产日产国产精品乱噜噜 | 蜜桃视频观看麻豆 | 久久国产精品二国产精品中国洋人 | 日韩精品久久久久久久九岛 | 久草在线视频在线 | 久久久久久麻豆 | 久久久久亚洲国产精品 | 狠狠操夜夜爱 | 成人一区二区在线观看视频 | 中文字幕免费在线看 | 欧美在线小视频 | 久久超| 黄色av网站在线观看 | 国产精品视频久久久 | 中文字幕天堂在线 | 午夜精品成人一区二区 | 免费日本一区二区 | 国产日韩欧美 | 日韩av在线影院 | 久久色网站 | 国产精品久久久久久久久久尿 |