DC:HDC; dpiSize:integer; pix:integer; strstyle:string; page2:TfrxPage; FX:STRING;// 记录方向 label outer;begin id:=Trim(sid) ; if id<>''then begin MyDataModule.frxReport1.pages[0].Clear ; try filename:=ExtractFilePath(paramstr(0))+'\data\setting.ini'; FStream := TIniFile.Create(filename); //左右格式1.上下格式--2 strstyle:=trim((FStream.ReadString('Style','Style',''))); strpage:=trim((FStream.ReadString('Paper','PaperName',''))); strpage1:=trim((FStream.ReadString('UserPaper','PaperName',''))); if ( Trim(strpage)='') and (Trim(strpage1)='') then begin //如果自定义,系统的都没有定义纸张,就会出错。 ShowMessage('请设置报表的纸张的大小!!!'); exit; end; if Trim(strstyle)='1' then begin //35 原来的, //36对35上面做了修改,可以横竖,自定义的纸张。 //351 是对纸张做横向打印的。 //35是按照b5的大小设计的。 //34是按照A4的大小设计的。 MyDataModule.frxReport1.LoadFromFile(WPath + IntToStr(36) + '.fr3'); end else if Trim(strstyle)='2' then begin MyDataModule.frxReport1.LoadFromFile(WPath + IntToStr(355) + '.fr3'); end else if Trim(strstyle)='' then begin ShowMessage('请设置报表的格式!!!'); exit; end;
page1:= MyDataModule.frxreport1.findobject('page1')as TfrxReportpage ; with page1 do begin //读取的纸张的大小,保存在ini文件中。 // strpage:=trim((FStream.ReadString('Paper','PaperName',''))); begin if strpage='A4' THEN begin page1.PaperSize:=DMPAPER_A4; end else if strpage='Letter' THEN PaperSize:=DMPAPER_Letter else if strpage='LetterSmall' THEN PaperSize:=DMPAPER_LetterSmall else if strpage='Tabloid' THEN PaperSize:=DMPAPER_Tabloid else if strpage='Ledger' THEN PaperSize:=DMPAPER_Ledger else if strpage='Legal' THEN PaperSize:=DMPAPER_Legal else if strpage='Statement' THEN PaperSize:=DMPAPER_Statement else if strpage='Executive' THEN PaperSize:=DMPAPER_Executive else if strpage='A3' THEN PaperSize:=DMPAPER_A3 else if strpage='A4Small' THEN PaperSize:=DMPAPER_A4Small else if strpage='A5' THEN PaperSize:=DMPAPER_A5 else if strpage='B4' THEN PaperSize:=DMPAPER_B4 else if strpage='B5' THEN begin PaperSize:=DMPAPER_B5; end else if strpage='Folio' THEN PaperSize:=DMPAPER_Folio else if strpage='Quarto' THEN PaperSize:=DMPAPER_Quarto else if strpage='qr10X14' THEN PaperSize:=DMPAPER_10X14 else if strpage='qr11X17' THEN PaperSize:=DMPAPER_11X17 else if strpage='Note' THEN PaperSize:=DMPAPER_Note else if strpage='Env9' THEN PaperSize:=DMPAPER_ENV_9 else if strpage='Env10' THEN PaperSize:=DMPAPER_Env_10 else if strpage='Env11' THEN PaperSize:=DMPAPER_Env_11 else if strpage='Env12' THEN PaperSize:=DMPAPER_Env_12 else if strpage='Env14' THEN PaperSize:=DMPAPER_Env_14 else if strpage='CSheet' THEN PaperSize:=DMPAPER_CSheet else if strpage='DSheet' THEN PaperSize:=DMPAPER_DSheet else if strpage='ESheet' THEN PaperSize:=DMPAPER_ESheet else //custom begin
finally FStream1.Free; end; end; //ShowMessage('纸张设置完毕'); FX:=''; if trim((FStream.ReadString('Print','P','')))='1' then begin // ShowMessage('竖向打印'); page1.Orientation:=poPortrait; FX:='1'; end else if trim(FStream.ReadString('Print','P',''))='2' then begin // ShowMessage('横向打印'); page1.Orientation:=poLandscape; FX:='2'; end; if trim((FStream.ReadString('Marge','Left','')))<>'' then begin leftmargin:=strtofloat(trim((FStream.ReadString('Marge','Left','')))); page1.leftmargin:= leftmargin; end; if trim((FStream.ReadString('Marge','Top','')))<>''then begin topmargin:=strtofloat(trim((FStream.ReadString('Marge','Top','')))); page1.TopMargin:=topmargin; end; if trim((FStream.ReadString('Marge','Right','')))<>''then begin rightmargin:=strtofloat(trim((FStream.ReadString('Marge','Right','')))); page1.RightMargin:=rightmargin; end; if trim((FStream.ReadString('Marge','Bottom','')))<>''then begin bottommargin:=strtofloat(trim((FStream.ReadString('Marge','Bottom','')))); page1.BottomMargin:=bottommargin; end; if trim((FStream.ReadString('Marge','Row','')))<>''then begin page1.Columns:=strtoint(trim(FStream.ReadString('Marge','Row',''))); end; if trim((FStream.ReadString('Marge','Row','')))<>''then begin introw:=strtoint(trim((FStream.ReadString('Marge','Row','')))); page1.Columns:=introw; end; s:='ZwFont'; with page1 do begin Font.Name:=FStream.ReadString(s,'Name','Arial'); FONT.CharSet:=strtoint(FStream.Readstring(s,'CharSet','')); FONT.Color:=strtoint(FStream.Readstring(s, 'Color', '')); FONT.Size:=strtoint(FStream.Readstring(s,'Size','')); end; end; end; finally FStream.Free; end;
memo1:= MyDataModule.frxreport1.findobject('memo1') as TfrxMemoView ; memo2:= MyDataModule.frxreport1.findobject('memo2') as TfrxMemoView ; memo3:= MyDataModule.frxreport1.findobject('memo3') as TfrxMemoView ; memo4:= MyDataModule.frxreport1.findobject('memo4') as TfrxMemoView ; memo5:= MyDataModule.frxreport1.findobject('memo5') as TfrxMemoView ; memo6:= MyDataModule.frxreport1.findobject('memo6') as TfrxMemoView ; memo7:= MyDataModule.frxreport1.findobject('memo7') as TfrxMemoView ; memo8:= MyDataModule.frxreport1.findobject('memo8') as TfrxMemoView ; memo9:= MyDataModule.frxreport1.findobject('memo9') as TfrxMemoView ; memo10:= MyDataModule.frxreport1.findobject('memo10') as TfrxMemoView ; memo11:= MyDataModule.frxreport1.findobject('memo11') as TfrxMemoView ; memo12:= MyDataModule.frxreport1.findobject('memo12') as TfrxMemoView ; memo13:= MyDataModule.frxreport1.findobject('memo13') as TfrxMemoView ; memo14:= MyDataModule.frxreport1.findobject('memo14') as TfrxMemoView ; memo15:= MyDataModule.frxreport1.findobject('memo15') as TfrxMemoView ; memo16:= MyDataModule.frxreport1.findobject('memo16') as TfrxMemoView ; memo17:= MyDataModule.frxreport1.findobject('memo17') as TfrxMemoView ; memo18:= MyDataModule.frxreport1.findobject('memo18') as TfrxMemoView ; memo19:= MyDataModule.frxreport1.findobject('memo19') as TfrxMemoView ; memo20:= MyDataModule.frxreport1.findobject('memo20') as TfrxMemoView ; memo21:= MyDataModule.frxreport1.findobject('memo21') as TfrxMemoView ; memo22:= MyDataModule.frxreport1.findobject('memo22') as TfrxMemoView ; memo23:= MyDataModule.frxreport1.findobject('memo23') as TfrxMemoView ; memo24:= MyDataModule.frxreport1.findobject('memo24') as TfrxMemoView ; memo25:= MyDataModule.frxreport1.findobject('memo25') as TfrxMemoView ; memo26:= MyDataModule.frxreport1.findobject('memo26') as TfrxMemoView ; memo27:= MyDataModule.frxreport1.findobject('memo27') as TfrxMemoView ; memo28:= MyDataModule.frxreport1.findobject('memo28') as TfrxMemoView ; memo29:= MyDataModule.frxreport1.findobject('memo29') as TfrxMemoView ; memo30:= MyDataModule.frxreport1.findobject('memo30') as TfrxMemoView ; memo31:= MyDataModule.frxreport1.findobject('memo31') as TfrxMemoView ; memo32:= MyDataModule.frxreport1.findobject('memo32') as TfrxMemoView ; memo33:=MyDataModule.frxreport1.findobject('memo33') as TfrxMemoView ; memo34:= MyDataModule.frxreport1.findobject('memo34') as TfrxMemoView ; memo35:= MyDataModule.frxreport1.findobject('memo35') as TfrxMemoView ; memo36:= MyDataModule.frxreport1.findobject('memo36') as TfrxMemoView ; memo37:= MyDataModule.frxreport1.findobject('memo37') as TfrxMemoView ; memo38:= MyDataModule.frxreport1.findobject('memo38') as TfrxMemoView ; memo39:= MyDataModule.frxreport1.findobject('memo39') as TfrxMemoView ; memo40:= MyDataModule.frxreport1.findobject('memo40') as TfrxMemoView ; memo41:= MyDataModule.frxreport1.findobject('memo41') as TfrxMemoView ; memo42:= MyDataModule.frxreport1.findobject('memo42') as TfrxMemoView ; memo43:= MyDataModule.frxreport1.findobject('memo43') as TfrxMemoView ; memo44:= MyDataModule.frxreport1.findobject('memo44') as TfrxMemoView ; memo45:= MyDataModule.frxreport1.findobject('memo45') as TfrxMemoView ; memo46:= MyDataModule.frxreport1.findobject('memo46') as TfrxMemoView ; memo47:= MyDataModule.frxreport1.findobject('memo47') as TfrxMemoView ; memo49:= MyDataModule.frxreport1.findobject('memo49') as TfrxMemoView ; reporttitle1:=MyDataModule.frxreport1.findobject('reporttitle1')as tfrxreporttitle ; masterdata1:=MyDataModule.frxreport1.findobject('masterdata1')as tfrxmasterdata ; footer1:=MyDataModule.frxreport1.findobject('footer1')as tfrxfooter ; header1:=MyDataModule.frxreport1.findobject('header1')as tfrxheader ; ///////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// try filename:=ExtractFilePath(paramstr(0))+'\data\setting.ini'; FStream:= TIniFile.Create(filename); s:='TitleFont'; with memo1 do begin Font.Name:=FStream.ReadString(s,'Name','Arial'); FONT.CharSet:=strtoint(FStream.Readstring(s,'CharSet','')); FONT.Color:=strtoint(FStream.Readstring(s, 'Color', '')); FONT.Size:=strtoint(FStream.Readstring(s,'Size','')); end; finally FStream.Free; end;
with MyDataModule do begin MyDataModule.tbl2.Close; MyDataModule.tbl1.close;
qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select ename,cname from printsort where which='+'''' +'head'+''''+' and isprint=true order by num'); qry1.Open; n:=0;
//取得打印的表头的字段。 while not qry1.Eof do begin // header_array[n,0]:=qry1.fieldbyname('ename').AsString; 英文名字 // header_array[n,1]:=qry1.fieldbyname('cname').AsString; //中文名字 if Trim(qry1.fieldbyname('cname').AsString)='检验日期' then begin // ShowMessage('33dddddd33333333333333332'); header_array[n,1]:=qry1.fieldbyname('cname').AsString; header_array[n,0]:=Trim(MidStr(id,1,4))+'-'+trim(MidStr(id,5,2))+'-'+trim(MidStr(id,7,2)); end else begin //ShowMessage('kkkkkkkkk'); header_array[n,1]:=qry1.fieldbyname('cname').AsString; qry2.Close; qry2.SQL.Clear; headerstr:='select '+trim(qry1.fieldbyname('ename').AsString) +char(13); headerstr :=headerstr +'from patient where id=:id'; qry2.SQL.Add(headerstr); qry2.Parameters.Items[0].Value:=Trim(id); qry2.Open ; header_array[n,0]:=qry2.fieldbyname(qry1.fieldbyname('ename').AsString).AsString ; end; n:=n+1; qry1.Next; end;
//取得打印的buttom的字段。 qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select ename,cname from printsort where which='+'''' +'buttom'+''''+' and isprint=true order by num'); qry1.Open; n:=0; while not qry1.Eof do begin //ShowMessage('button ziduan '); buttom_array[n,1]:=qry1.fieldbyname('cname').AsString; qry2.Close; qry2.SQL.Clear; headerstr:='select '+trim(qry1.fieldbyname('ename').AsString) +char(13); headerstr :=headerstr +'from patient where id=:id'; qry2.SQL.Add(headerstr ); qry2.Parameters.Items[0].Value:=Trim(id); qry2.Open ; buttom_array[n,0]:=qry2.fieldbyname(qry1.fieldbyname('ename').AsString).AsString ; /////////////////////////////////////////////////////////////////////// n:=n+1; qry1.Next; end;
//取得 patient,ghx_data的数据。
if header_array[0,1]<>'' then begin memo2.Text :=header_array[0,1]+':' ; memo3.Text :=header_array[0,0] ; end else begin memo2.Text :=''; memo3.Text :=''; memo2.Visible:=false; memo3.Visible :=false; end; if header_array[1,1]<>'' then begin memo4.Text := header_array[1,1]+':' ; memo5.Text := header_array[1,0] ; end else begin memo4.Text :=''; memo5.Text :=''; memo4.Visible:=false; memo5.Visible :=false; end; if header_array[2,1]<>'' then begin memo6.Text:= header_array[2,1]+':' ; memo7.Text :=header_array[2,0] ; end else begin memo6.Text :=''; memo7.Text :=''; memo6.Visible:=false; memo7.Visible :=false; end; if header_array[3,1]<>'' then begin memo8.Text:= header_array[3,1]+':' ; memo9.Text :=header_array[3,0] ; end else begin memo8.Text :=''; memo9.Text :=''; memo8.Visible:=false; memo9.Visible :=false; end; if header_array[4,1]<>'' then begin memo10.Text:= header_array[4,1]+':'; memo11.Text :=header_array[4,0] ; end else begin memo10.Text :=''; memo11.Text :=''; memo10.Visible:=false; memo11.Visible :=false; end; if header_array[5,1]<>'' then begin memo12.Text:= header_array[5,1]+':'; memo13.Text :=header_array[5,0] ; end else begin memo12.Text :=''; memo13.Text :=''; memo12.Visible:=false; memo13.Visible :=false; end; if header_array[6,1]<>'' then begin memo14.Text:= header_array[6,1]+':'; memo15.Text :=header_array[6,0] ; end else begin memo14.Text :=''; memo15.Text :=''; memo14.Visible:=false; memo15.Visible :=false; end; if header_array[7,1]<>'' then begin memo16.Text:= header_array[7,1]+':'; memo17.Text :=header_array[7,0] ; end else begin memo16.Text :=''; memo17.Text :=''; memo16.Visible:=false; memo17.Visible :=false; end; if header_array[8,1]<>'' then begin memo18.Text:= header_array[8,1]+':'; memo19.Text :=header_array[8,0] ; end else begin memo18.Text :=''; memo19.Text :=''; memo18.Visible:=false; memo19.Visible :=false; end; if header_array[9,1]<>'' then begin memo20.Text:= header_array[9,1]+':'; memo21.Text :=header_array[9,0] ; end else begin memo20.Text :=''; memo21.Text :=''; memo20.Visible:=false; memo21.Visible :=false; end; if header_array[10,1]<>'' then begin memo22.Text := header_array[10,1]+':' ; memo23.Text :=header_array[10,0] ; end else begin memo22.Text :=''; memo23.Text :=''; memo22.Visible:=false; memo23.Visible :=false; end ; if header_array[11,1]<>'' then begin memo24.Text := header_array[11,1]+':' ; memo25.Text :=header_array[11,0] ; end else begin memo24.Text :=''; memo25.Text :=''; memo24.Visible:=false; memo25.Visible :=false; end ; // ShowMessage('buttom '); ////////////////////////buttom 27---36 if Trim(buttom_array[0,1])<>'' then begin // ShowMessage('buttom is begin update '); // showmessage(memo38.text) ; memo38.Text:= Trim(buttom_array[0,1])+':'; memo39.Text :=Trim(buttom_array[0,0]) ; end else begin // ShowMessage('buttom there is no recorder '); memo38.Text :=''; memo39.Text :=''; memo38.Visible:=false; memo39.Visible :=false; end; if Trim(buttom_array[1,1])<>'' then begin // ShowMessage('buttom is begin update '); memo40.Text := Trim(buttom_array[1,1])+':'; memo41.Text :=Trim(buttom_array[1,0]) ; // showmessage(memo40.text) ; end else begin memo40.Text :=''; memo41.Text :=''; memo40.Visible:=false; memo41.Visible :=false; end; if Trim(buttom_array[2,1])<>'' then begin // ShowMessage('buttom is begin update '); // showmessage(memo42.text) ; memo42.Text:= Trim(buttom_array[2,1])+':'; memo43.Text :=Trim(buttom_array[2,0]) ; end else begin memo42.Text :=''; memo43.Text :=''; memo42.Visible:=false; memo43.Visible :=false; end; //////////////////////////////////////////////////////////////////////////////// //写时间,日期 memo46.Text :='打印日期:'; memo47.Text:=dateTimetostr(now);
//设置报表的标题居中。 qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select yiyuanmingcheng from systemSetting '); qry1.Open; memo1.Text :=qry1.FieldByname('yiyuanmingcheng').AsString+'尿液检测报告单' ; //设置报表的标题居中。 memo1.width:=reporttitle1.Width ; IF Trim(FX)='1' THEN //竖向 BEGIN IF Length(qry1.FieldByname('yiyuanmingcheng').AsString)<=16 THEN BEGIN memo1.Left :=memo2.Left +memo2.Width/3; END else IF (Length(qry1.FieldByname('yiyuanmingcheng').AsString)>=16) and (Length(qry1.FieldByname('yiyuanmingcheng').AsString)<=28) THEN BEGIN memo1.Left :=memo2.Left +memo2.Width/4; END ELSE IF Length(qry1.FieldByname('yiyuanmingcheng').AsString)>28 THEN BEGIN memo1.Left :=memo2.Left; END; end ELSE IF Trim(FX)='2' then //横向 begin memo1.width := ReportTitle1.Width; memo1.HAlign := haCenter; // memo1.VAlign := VaCenter; memo1.Left := 0; end;
////////////下面是更新干化学项目表 报表的左边的项目。 sqlStr1:='select shunxu,id from ghx_data where id='+''''+id+''''; qry1.Close; qry1.SQL.Clear; qry1.SQL.Add(sqlStr1); qry1.Open; sqlStr:='select '; qry2.Close; qry2.SQL.Clear; qry2.SQL.Add('select * from printsort where which='+'''' +'middle'+''''+' and isprint=true order by num'); qry2.Open; while not qry2.Eof do begin if AnsiContainsText(qry1.FieldByname('shunxu').AsString,qry2.fieldBYname('ename').AsString) then sqlStr:=sqlStr+qry2.fieldBYname('ename').AsString+','; qry2.Next; end; // 去掉标点符号, sqlStr:=MidStr(sqlStr,1,length(sqlStr)-1); // ShowMessage('构造查询语句'+sqlstr); // 下面是取出ghx_data的数据,再填到临时表中去,再取出来填到表中去 // 'M/C'替换为'[M/C]',因为'M/C'是不可以识别的字段每次 if AnsiContainsText(Trim(sqlStr),'M/C') then begin sqlStr :=AnsiReplaceText(sqlStr,'M/C','[M/C]') ; end; if AnsiContainsText(Trim(sqlStr),'C/C') then begin sqlStr :=AnsiReplaceText(sqlStr,'C/C','[C/C]') ; end; sqlStr:=sqlStr+' FROM ghx_data where id='+''''+id+''''; MyDataModule .tbl2.close; //删除jianyan_temp 的数据 qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('delete from jianyan_temp where jianyan_mincheng is not null'); qry1.ExecSQL; qry1.Close; qry1.SQL.Clear; //tempADOQuery qry1.SQL.Add(sqlStr); qry1.Open;
改成这样 看行不行
是不是没连接上打印机呢?
var
id_temp,s,strtile:String;
FStream: TIniFile;
FStream1: TIniFile;
filename,filename1:string;
strrow:string;
memo1,memo2,memo3,memo4,memo5,memo6,memo7,memo8,memo9,memo10,memo49:TfrxMemoView ;
memo11,memo12,memo13,memo14,memo15,memo16,memo17,memo18,memo19,memo20:TfrxMemoView ;
memo21,memo22,memo23,memo24,memo25,memo26,memo27,memo28,memo29,memo30,memo31,memo32:tfrxMemoView ;
memo33,memo34,memo35,memo36,memo37,memo38,memo39,memo41,memo40,memo42,memo43,memo44,memo45,memo46,memo47:TfrxMemoView ; page1:TfrxReportpage ;
reporttitle1:tfrxreporttitle ;
masterdata1:tfrxmasterdata;
footer1:tfrxfooter;
header1:tfrxheader;
///////////////////////// str,sqlStr,sqlStr1,headerstr:string;
i,n:integer;
header_array:array[0..20,0..1] of String; //顶部打印顺序数组
buttom_array:array[0..3,0..1] of String; //检验项目打印顺序数组
sqljingjian,sqlupdate:string;
WPath:string; qry1,qry2,qry3:TADOQUERY;
frxDBDataset1jianyan_mincheng:TfrxMemoView ;
frxDBDataset1jianyan_changyongzhi:TfrxMemoView ;
frxDBDataset1jianyan_cankaozhi:TfrxMemoView ;
frxDBDataset1jingjian_mincheng:TfrxMemoView ;
frxDBDataset1jingjian_zhi:TfrxMemoView ; reporttile1:TfrxReportTitle ;
idstr:string; bottommargin,leftmargin,rightmargin,topmargin:real;
strpage,strpage1:string;
introw:integer; paperwidth,PAPERHEIGTH:Extended ; Widthpage:real; //这个宽度是报表去掉左右margin的值。去掉左右边距的数值
//把毫米单位换成像素
DC:HDC;
dpiSize:integer;
pix:integer; strstyle:string; page2:TfrxPage; FX:STRING;// 记录方向
label outer;begin id:=Trim(sid) ; if id<>''then
begin
MyDataModule.frxReport1.pages[0].Clear ; try
filename:=ExtractFilePath(paramstr(0))+'\data\setting.ini';
FStream := TIniFile.Create(filename);
//左右格式1.上下格式--2
strstyle:=trim((FStream.ReadString('Style','Style','')));
strpage:=trim((FStream.ReadString('Paper','PaperName','')));
strpage1:=trim((FStream.ReadString('UserPaper','PaperName','')));
if ( Trim(strpage)='') and (Trim(strpage1)='') then
begin //如果自定义,系统的都没有定义纸张,就会出错。
ShowMessage('请设置报表的纸张的大小!!!');
exit;
end;
if Trim(strstyle)='1' then
begin
//35 原来的,
//36对35上面做了修改,可以横竖,自定义的纸张。
//351 是对纸张做横向打印的。
//35是按照b5的大小设计的。
//34是按照A4的大小设计的。
MyDataModule.frxReport1.LoadFromFile(WPath + IntToStr(36) + '.fr3'); end else if Trim(strstyle)='2' then
begin MyDataModule.frxReport1.LoadFromFile(WPath + IntToStr(355) + '.fr3'); end
else if Trim(strstyle)='' then
begin
ShowMessage('请设置报表的格式!!!');
exit;
end;
with page1 do
begin
//读取的纸张的大小,保存在ini文件中。
// strpage:=trim((FStream.ReadString('Paper','PaperName','')));
begin
if strpage='A4' THEN
begin
page1.PaperSize:=DMPAPER_A4;
end
else if strpage='Letter' THEN PaperSize:=DMPAPER_Letter
else if strpage='LetterSmall' THEN PaperSize:=DMPAPER_LetterSmall
else if strpage='Tabloid' THEN PaperSize:=DMPAPER_Tabloid
else if strpage='Ledger' THEN PaperSize:=DMPAPER_Ledger
else if strpage='Legal' THEN PaperSize:=DMPAPER_Legal
else if strpage='Statement' THEN PaperSize:=DMPAPER_Statement
else if strpage='Executive' THEN PaperSize:=DMPAPER_Executive
else if strpage='A3' THEN PaperSize:=DMPAPER_A3
else if strpage='A4Small' THEN PaperSize:=DMPAPER_A4Small
else if strpage='A5' THEN PaperSize:=DMPAPER_A5
else if strpage='B4' THEN PaperSize:=DMPAPER_B4
else if strpage='B5' THEN
begin
PaperSize:=DMPAPER_B5; end
else if strpage='Folio' THEN PaperSize:=DMPAPER_Folio
else if strpage='Quarto' THEN PaperSize:=DMPAPER_Quarto
else if strpage='qr10X14' THEN PaperSize:=DMPAPER_10X14
else if strpage='qr11X17' THEN PaperSize:=DMPAPER_11X17
else if strpage='Note' THEN PaperSize:=DMPAPER_Note
else if strpage='Env9' THEN PaperSize:=DMPAPER_ENV_9
else if strpage='Env10' THEN PaperSize:=DMPAPER_Env_10
else if strpage='Env11' THEN PaperSize:=DMPAPER_Env_11
else if strpage='Env12' THEN PaperSize:=DMPAPER_Env_12
else if strpage='Env14' THEN PaperSize:=DMPAPER_Env_14
else if strpage='CSheet' THEN PaperSize:=DMPAPER_CSheet
else if strpage='DSheet' THEN PaperSize:=DMPAPER_DSheet
else if strpage='ESheet' THEN PaperSize:=DMPAPER_ESheet else //custom
begin
filename1:=ExtractFilePath(paramstr(0))+'\data\setting.ini';
FStream1 := TIniFile.Create(filename1);
try
Page1.Paperwidth:=strtoint(trim(FStream1.ReadString('UserPaper','length','')));
Page1.PaperHeight:=strtoint(trim((FStream1.ReadString('UserPaper','Width',''))));
finally
FStream1.Free;
end;
end;
//ShowMessage('纸张设置完毕');
FX:='';
if trim((FStream.ReadString('Print','P','')))='1' then
begin // ShowMessage('竖向打印');
page1.Orientation:=poPortrait;
FX:='1'; end else if trim(FStream.ReadString('Print','P',''))='2' then
begin
// ShowMessage('横向打印');
page1.Orientation:=poLandscape;
FX:='2';
end; if trim((FStream.ReadString('Marge','Left','')))<>'' then
begin
leftmargin:=strtofloat(trim((FStream.ReadString('Marge','Left',''))));
page1.leftmargin:= leftmargin; end;
if trim((FStream.ReadString('Marge','Top','')))<>''then
begin
topmargin:=strtofloat(trim((FStream.ReadString('Marge','Top',''))));
page1.TopMargin:=topmargin;
end;
if trim((FStream.ReadString('Marge','Right','')))<>''then
begin
rightmargin:=strtofloat(trim((FStream.ReadString('Marge','Right',''))));
page1.RightMargin:=rightmargin;
end;
if trim((FStream.ReadString('Marge','Bottom','')))<>''then
begin bottommargin:=strtofloat(trim((FStream.ReadString('Marge','Bottom',''))));
page1.BottomMargin:=bottommargin;
end; if trim((FStream.ReadString('Marge','Row','')))<>''then
begin page1.Columns:=strtoint(trim(FStream.ReadString('Marge','Row',''))); end;
if trim((FStream.ReadString('Marge','Row','')))<>''then
begin
introw:=strtoint(trim((FStream.ReadString('Marge','Row',''))));
page1.Columns:=introw;
end; s:='ZwFont';
with page1 do
begin
Font.Name:=FStream.ReadString(s,'Name','Arial');
FONT.CharSet:=strtoint(FStream.Readstring(s,'CharSet',''));
FONT.Color:=strtoint(FStream.Readstring(s, 'Color', ''));
FONT.Size:=strtoint(FStream.Readstring(s,'Size',''));
end; end; end;
finally
FStream.Free;
end;
memo2:= MyDataModule.frxreport1.findobject('memo2') as TfrxMemoView ;
memo3:= MyDataModule.frxreport1.findobject('memo3') as TfrxMemoView ;
memo4:= MyDataModule.frxreport1.findobject('memo4') as TfrxMemoView ;
memo5:= MyDataModule.frxreport1.findobject('memo5') as TfrxMemoView ;
memo6:= MyDataModule.frxreport1.findobject('memo6') as TfrxMemoView ;
memo7:= MyDataModule.frxreport1.findobject('memo7') as TfrxMemoView ;
memo8:= MyDataModule.frxreport1.findobject('memo8') as TfrxMemoView ;
memo9:= MyDataModule.frxreport1.findobject('memo9') as TfrxMemoView ;
memo10:= MyDataModule.frxreport1.findobject('memo10') as TfrxMemoView ;
memo11:= MyDataModule.frxreport1.findobject('memo11') as TfrxMemoView ;
memo12:= MyDataModule.frxreport1.findobject('memo12') as TfrxMemoView ;
memo13:= MyDataModule.frxreport1.findobject('memo13') as TfrxMemoView ;
memo14:= MyDataModule.frxreport1.findobject('memo14') as TfrxMemoView ;
memo15:= MyDataModule.frxreport1.findobject('memo15') as TfrxMemoView ;
memo16:= MyDataModule.frxreport1.findobject('memo16') as TfrxMemoView ;
memo17:= MyDataModule.frxreport1.findobject('memo17') as TfrxMemoView ;
memo18:= MyDataModule.frxreport1.findobject('memo18') as TfrxMemoView ;
memo19:= MyDataModule.frxreport1.findobject('memo19') as TfrxMemoView ;
memo20:= MyDataModule.frxreport1.findobject('memo20') as TfrxMemoView ;
memo21:= MyDataModule.frxreport1.findobject('memo21') as TfrxMemoView ;
memo22:= MyDataModule.frxreport1.findobject('memo22') as TfrxMemoView ;
memo23:= MyDataModule.frxreport1.findobject('memo23') as TfrxMemoView ;
memo24:= MyDataModule.frxreport1.findobject('memo24') as TfrxMemoView ;
memo25:= MyDataModule.frxreport1.findobject('memo25') as TfrxMemoView ;
memo26:= MyDataModule.frxreport1.findobject('memo26') as TfrxMemoView ;
memo27:= MyDataModule.frxreport1.findobject('memo27') as TfrxMemoView ;
memo28:= MyDataModule.frxreport1.findobject('memo28') as TfrxMemoView ;
memo29:= MyDataModule.frxreport1.findobject('memo29') as TfrxMemoView ;
memo30:= MyDataModule.frxreport1.findobject('memo30') as TfrxMemoView ;
memo31:= MyDataModule.frxreport1.findobject('memo31') as TfrxMemoView ;
memo32:= MyDataModule.frxreport1.findobject('memo32') as TfrxMemoView ;
memo33:=MyDataModule.frxreport1.findobject('memo33') as TfrxMemoView ;
memo34:= MyDataModule.frxreport1.findobject('memo34') as TfrxMemoView ;
memo35:= MyDataModule.frxreport1.findobject('memo35') as TfrxMemoView ;
memo36:= MyDataModule.frxreport1.findobject('memo36') as TfrxMemoView ;
memo37:= MyDataModule.frxreport1.findobject('memo37') as TfrxMemoView ;
memo38:= MyDataModule.frxreport1.findobject('memo38') as TfrxMemoView ;
memo39:= MyDataModule.frxreport1.findobject('memo39') as TfrxMemoView ;
memo40:= MyDataModule.frxreport1.findobject('memo40') as TfrxMemoView ;
memo41:= MyDataModule.frxreport1.findobject('memo41') as TfrxMemoView ;
memo42:= MyDataModule.frxreport1.findobject('memo42') as TfrxMemoView ;
memo43:= MyDataModule.frxreport1.findobject('memo43') as TfrxMemoView ;
memo44:= MyDataModule.frxreport1.findobject('memo44') as TfrxMemoView ;
memo45:= MyDataModule.frxreport1.findobject('memo45') as TfrxMemoView ;
memo46:= MyDataModule.frxreport1.findobject('memo46') as TfrxMemoView ;
memo47:= MyDataModule.frxreport1.findobject('memo47') as TfrxMemoView ;
memo49:= MyDataModule.frxreport1.findobject('memo49') as TfrxMemoView ; reporttitle1:=MyDataModule.frxreport1.findobject('reporttitle1')as tfrxreporttitle ;
masterdata1:=MyDataModule.frxreport1.findobject('masterdata1')as tfrxmasterdata ;
footer1:=MyDataModule.frxreport1.findobject('footer1')as tfrxfooter ;
header1:=MyDataModule.frxreport1.findobject('header1')as tfrxheader ;
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////// try
filename:=ExtractFilePath(paramstr(0))+'\data\setting.ini';
FStream:= TIniFile.Create(filename);
s:='TitleFont';
with memo1 do
begin
Font.Name:=FStream.ReadString(s,'Name','Arial');
FONT.CharSet:=strtoint(FStream.Readstring(s,'CharSet',''));
FONT.Color:=strtoint(FStream.Readstring(s, 'Color', ''));
FONT.Size:=strtoint(FStream.Readstring(s,'Size',''));
end;
finally
FStream.Free;
end;
begin
MyDataModule.tbl2.Close;
MyDataModule.tbl1.close;
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select ename,cname from printsort where which='+''''
+'head'+''''+' and isprint=true order by num'); qry1.Open; n:=0;
//取得打印的表头的字段。
while not qry1.Eof do
begin // header_array[n,0]:=qry1.fieldbyname('ename').AsString; 英文名字
// header_array[n,1]:=qry1.fieldbyname('cname').AsString; //中文名字 if Trim(qry1.fieldbyname('cname').AsString)='检验日期' then
begin
// ShowMessage('33dddddd33333333333333332');
header_array[n,1]:=qry1.fieldbyname('cname').AsString; header_array[n,0]:=Trim(MidStr(id,1,4))+'-'+trim(MidStr(id,5,2))+'-'+trim(MidStr(id,7,2));
end
else
begin
//ShowMessage('kkkkkkkkk');
header_array[n,1]:=qry1.fieldbyname('cname').AsString;
qry2.Close;
qry2.SQL.Clear;
headerstr:='select '+trim(qry1.fieldbyname('ename').AsString) +char(13);
headerstr :=headerstr +'from patient where id=:id';
qry2.SQL.Add(headerstr);
qry2.Parameters.Items[0].Value:=Trim(id);
qry2.Open ;
header_array[n,0]:=qry2.fieldbyname(qry1.fieldbyname('ename').AsString).AsString ;
end;
n:=n+1;
qry1.Next;
end;
//取得打印的buttom的字段。
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select ename,cname from printsort where which='+''''
+'buttom'+''''+' and isprint=true order by num');
qry1.Open;
n:=0;
while not qry1.Eof do
begin
//ShowMessage('button ziduan ');
buttom_array[n,1]:=qry1.fieldbyname('cname').AsString;
qry2.Close;
qry2.SQL.Clear;
headerstr:='select '+trim(qry1.fieldbyname('ename').AsString) +char(13);
headerstr :=headerstr +'from patient where id=:id';
qry2.SQL.Add(headerstr );
qry2.Parameters.Items[0].Value:=Trim(id);
qry2.Open ;
buttom_array[n,0]:=qry2.fieldbyname(qry1.fieldbyname('ename').AsString).AsString ; ///////////////////////////////////////////////////////////////////////
n:=n+1;
qry1.Next;
end;
if header_array[0,1]<>'' then
begin
memo2.Text :=header_array[0,1]+':' ;
memo3.Text :=header_array[0,0] ; end
else
begin
memo2.Text :=''; memo3.Text :='';
memo2.Visible:=false; memo3.Visible :=false;
end;
if header_array[1,1]<>'' then
begin
memo4.Text := header_array[1,1]+':' ;
memo5.Text := header_array[1,0] ;
end
else
begin
memo4.Text :=''; memo5.Text :='';
memo4.Visible:=false; memo5.Visible :=false; end;
if header_array[2,1]<>'' then
begin
memo6.Text:= header_array[2,1]+':' ;
memo7.Text :=header_array[2,0] ;
end
else
begin
memo6.Text :=''; memo7.Text :='';
memo6.Visible:=false; memo7.Visible :=false;
end;
if header_array[3,1]<>'' then
begin
memo8.Text:= header_array[3,1]+':' ;
memo9.Text :=header_array[3,0] ;
end
else
begin
memo8.Text :=''; memo9.Text :='';
memo8.Visible:=false; memo9.Visible :=false; end;
if header_array[4,1]<>'' then
begin
memo10.Text:= header_array[4,1]+':';
memo11.Text :=header_array[4,0] ;
end
else
begin
memo10.Text :=''; memo11.Text :='';
memo10.Visible:=false; memo11.Visible :=false; end;
if header_array[5,1]<>'' then
begin
memo12.Text:= header_array[5,1]+':';
memo13.Text :=header_array[5,0] ;
end
else
begin
memo12.Text :=''; memo13.Text :='';
memo12.Visible:=false; memo13.Visible :=false; end;
if header_array[6,1]<>'' then
begin
memo14.Text:= header_array[6,1]+':';
memo15.Text :=header_array[6,0] ;
end
else
begin
memo14.Text :=''; memo15.Text :='';
memo14.Visible:=false; memo15.Visible :=false;
end;
if header_array[7,1]<>'' then
begin
memo16.Text:= header_array[7,1]+':';
memo17.Text :=header_array[7,0] ;
end
else
begin
memo16.Text :=''; memo17.Text :='';
memo16.Visible:=false; memo17.Visible :=false;
end;
if header_array[8,1]<>'' then
begin
memo18.Text:= header_array[8,1]+':';
memo19.Text :=header_array[8,0] ;
end
else
begin
memo18.Text :=''; memo19.Text :='';
memo18.Visible:=false; memo19.Visible :=false;
end;
if header_array[9,1]<>'' then
begin
memo20.Text:= header_array[9,1]+':';
memo21.Text :=header_array[9,0] ;
end
else
begin
memo20.Text :=''; memo21.Text :='';
memo20.Visible:=false; memo21.Visible :=false;
end;
if header_array[10,1]<>'' then
begin
memo22.Text := header_array[10,1]+':' ;
memo23.Text :=header_array[10,0] ;
end
else
begin memo22.Text :=''; memo23.Text :='';
memo22.Visible:=false; memo23.Visible :=false;
end ;
if header_array[11,1]<>'' then
begin
memo24.Text := header_array[11,1]+':' ;
memo25.Text :=header_array[11,0] ;
end
else
begin
memo24.Text :=''; memo25.Text :='';
memo24.Visible:=false; memo25.Visible :=false;
end ; // ShowMessage('buttom ');
////////////////////////buttom 27---36
if Trim(buttom_array[0,1])<>'' then
begin
// ShowMessage('buttom is begin update ');
// showmessage(memo38.text) ;
memo38.Text:= Trim(buttom_array[0,1])+':';
memo39.Text :=Trim(buttom_array[0,0]) ;
end
else
begin
// ShowMessage('buttom there is no recorder ');
memo38.Text :=''; memo39.Text :='';
memo38.Visible:=false; memo39.Visible :=false;
end;
if Trim(buttom_array[1,1])<>'' then
begin
// ShowMessage('buttom is begin update ');
memo40.Text := Trim(buttom_array[1,1])+':';
memo41.Text :=Trim(buttom_array[1,0]) ;
// showmessage(memo40.text) ;
end
else
begin memo40.Text :=''; memo41.Text :='';
memo40.Visible:=false; memo41.Visible :=false;
end; if Trim(buttom_array[2,1])<>'' then
begin
// ShowMessage('buttom is begin update ');
// showmessage(memo42.text) ;
memo42.Text:= Trim(buttom_array[2,1])+':';
memo43.Text :=Trim(buttom_array[2,0]) ;
end
else
begin
memo42.Text :=''; memo43.Text :='';
memo42.Visible:=false; memo43.Visible :=false;
end;
////////////////////////////////////////////////////////////////////////////////
//写时间,日期
memo46.Text :='打印日期:';
memo47.Text:=dateTimetostr(now);
//update beizhu
memo44.Text :='备注:';
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select beizhu_mincheng from beizhu ');
qry1.Open;
memo45.Text:=qry1.FieldByname('beizhu_mincheng').AsString ;
//设置报表的标题居中。
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select yiyuanmingcheng from systemSetting ');
qry1.Open;
memo1.Text :=qry1.FieldByname('yiyuanmingcheng').AsString+'尿液检测报告单' ;
//设置报表的标题居中。
memo1.width:=reporttitle1.Width ;
IF Trim(FX)='1' THEN //竖向
BEGIN
IF Length(qry1.FieldByname('yiyuanmingcheng').AsString)<=16 THEN
BEGIN
memo1.Left :=memo2.Left +memo2.Width/3; END
else IF (Length(qry1.FieldByname('yiyuanmingcheng').AsString)>=16) and
(Length(qry1.FieldByname('yiyuanmingcheng').AsString)<=28) THEN
BEGIN
memo1.Left :=memo2.Left +memo2.Width/4; END
ELSE IF Length(qry1.FieldByname('yiyuanmingcheng').AsString)>28 THEN
BEGIN
memo1.Left :=memo2.Left;
END;
end ELSE IF Trim(FX)='2' then //横向
begin
memo1.width := ReportTitle1.Width; memo1.HAlign := haCenter;
// memo1.VAlign := VaCenter;
memo1.Left := 0; end;
sqlStr1:='select shunxu,id from ghx_data where id='+''''+id+'''';
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add(sqlStr1);
qry1.Open; sqlStr:='select '; qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Add('select * from printsort where which='+''''
+'middle'+''''+' and isprint=true order by num');
qry2.Open; while not qry2.Eof do
begin
if AnsiContainsText(qry1.FieldByname('shunxu').AsString,qry2.fieldBYname('ename').AsString) then
sqlStr:=sqlStr+qry2.fieldBYname('ename').AsString+',';
qry2.Next; end; // 去掉标点符号,
sqlStr:=MidStr(sqlStr,1,length(sqlStr)-1);
// ShowMessage('构造查询语句'+sqlstr);
// 下面是取出ghx_data的数据,再填到临时表中去,再取出来填到表中去 // 'M/C'替换为'[M/C]',因为'M/C'是不可以识别的字段每次
if AnsiContainsText(Trim(sqlStr),'M/C') then
begin
sqlStr :=AnsiReplaceText(sqlStr,'M/C','[M/C]') ; end;
if AnsiContainsText(Trim(sqlStr),'C/C') then
begin
sqlStr :=AnsiReplaceText(sqlStr,'C/C','[C/C]') ; end; sqlStr:=sqlStr+' FROM ghx_data where id='+''''+id+'''';
MyDataModule .tbl2.close; //删除jianyan_temp 的数据
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('delete from jianyan_temp where jianyan_mincheng is not null');
qry1.ExecSQL; qry1.Close;
qry1.SQL.Clear; //tempADOQuery
qry1.SQL.Add(sqlStr);
qry1.Open;