📄 jilu.pas
字号:
unit jilu;
interface
uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls, Db, DBTables, Wwquery;
type
Tfrmqrjilu = class(TQuickRep)
qryjilu: TwwQuery;
qryjiluBED: TStringField;
qryjiluPNM: TStringField;
qryjiluUSAGEID: TStringField;
qryjiluUSAGENAME: TStringField;
qryjiluORDERKIND: TSmallintField;
qryjiluKINDID: TSmallintField;
qryjiluITEMNAME: TStringField;
qryjiluDOSAGE: TFloatField;
qryjiluDOSUNIT: TStringField;
qryjiluTMNAME: TStringField;
qryjiluREPNB: TIntegerField;
qryjiluCOUNTS: TIntegerField;
PageHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
lbnum: TQRLabel;
lbitemname: TQRLabel;
lbdosage: TQRLabel;
lbdosunit: TQRLabel;
lbusagename: TQRLabel;
QRShape9: TQRShape;
QRShape10: TQRShape;
QRShape11: TQRShape;
QRShape12: TQRShape;
QRShape13: TQRShape;
QRShape14: TQRShape;
QRShape15: TQRShape;
lbwardname: TQRLabel;
QRLabel4: TQRLabel;
lbbed: TQRLabel;
QRLabel6: TQRLabel;
QRShape2: TQRShape;
QRShape3: TQRShape;
QRLabel8: TQRLabel;
QRShape5: TQRShape;
QRLabel9: TQRLabel;
QRShape7: TQRShape;
QRLabel10: TQRLabel;
QRShape6: TQRShape;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRShape1: TQRShape;
QRShape4: TQRShape;
QRShape16: TQRShape;
QRLabel3: TQRLabel;
QRLabel5: TQRLabel;
QRShape17: TQRShape;
QRShape18: TQRShape;
QRShape19: TQRShape;
QRShape20: TQRShape;
QRShape21: TQRShape;
QRShape22: TQRShape;
QRShape23: TQRShape;
QRShape24: TQRShape;
QRLabel7: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRLabel15: TQRLabel;
QRLabel16: TQRLabel;
QRLabel17: TQRLabel;
QRShape25: TQRShape;
QRShape26: TQRShape;
QRShape27: TQRShape;
QRShape28: TQRShape;
QRShape29: TQRShape;
QRShape30: TQRShape;
QRShape31: TQRShape;
QRShape32: TQRShape;
QRShape33: TQRShape;
QRShape34: TQRShape;
QRShape35: TQRShape;
lbname: TQRLabel;
QRLabel18: TQRLabel;
QRLabel19: TQRLabel;
QRLabel20: TQRLabel;
lbdate: TQRLabel;
labelb: TQRLabel;
QRShape8: TQRShape;
QRShape36: TQRShape;
LBTMNAME: TQRLabel;
QRLabel21: TQRLabel;
procedure DetailBand1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
procedure frmqrjiluNeedData(Sender: TObject; var MoreData: Boolean);
procedure QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
private
public
prtname : String;
rowcount : Integer;
prtkindid : integer;
num : integer;
prtdate : String;
prtrepnb : smallint;
prtusagename : string;
prttmname : string;
end;
var
frmqrjilu: Tfrmqrjilu;
implementation
uses Datamodule, HisUtilitis, PRNDataModule;
{$R *.DFM}
const
pagerow = 23;
num = 1;
procedure Tfrmqrjilu.DetailBand1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
if prtname <> qryjilupnm.AsString then
begin
lbwardname.Caption := DM.currWardid;
lbbed.Caption := qryjilubed.AsString;
lbname.Caption := qryjilupnm.AsString;
end;
end;
procedure Tfrmqrjilu.frmqrjiluNeedData(Sender: TObject;
var MoreData: Boolean);
begin
if not qryjilu.Active then qryjilu.Open;
if not qryjilu.EOF then
begin
moredata := True;
qrshape16.Width := 0;
if prtname = qryjilupnm.AsString then
begin
if prtkindid = qryjilukindid.Value then
begin
lbnum.Caption := '';
lbusagename.Caption := '';
lbtmname.Caption := '';
qrshape10.Left := 0;
qrshape10.Width := 0;
if (qryjilurepnb.Value > 1) and (qryjilurepnb.Value <> prtrepnb) then
begin
qrshape10.Left := 41;
qrshape10.Width := 195;
end else
begin
qrshape10.Left := 0;
qrshape10.Width := 0;
end;
end else
begin
lbusagename.Caption := qryjiluusagename.AsString;
lbtmname.Caption := qryjilutmname.AsString;
num := num+1;
lbnum.Caption := inttostr(num);
qrshape10.Left := 0;
qrshape10.Width := 457;
end;
lbitemname.Caption := qryjiluitemname.AsString;
lbdosage.Caption := format('%8.3f',[strtofloat(qryjiludosage.AsString)]);
lbdosunit.Caption := qryjiludosunit.AsString;
prtkindid := qryjilukindid.Value;
prtname := qryjilupnm.AsString;
prtrepnb := qryjilurepnb.Value;
prtusagename := qryjiluusagename.AsString;
prttmname := qryjilutmname.AsString;
qryjilu.Next;
qrshape16.Width := 0;
inc(rowcount);
if rowcount = pagerow + 1 then
begin
newpage;
rowcount := 0;
end;
end else //not the same pnm
begin
if rowcount <> pagerow then
begin
lbnum.Caption := '';
lbitemname.Caption := '';
lbdosage.Caption := '';
lbdosunit.Caption := '';
lbusagename.Caption := '';
lbtmname.Caption := '';
qrshape10.Left := 0;
qrshape10.Width := 457;
if rowcount = 22 then qrshape16.Width := 455;
inc(rowcount);
end else
begin
newpage;
rowcount := 0;
num:=1;
lbwardname.Caption := dm.currwardname;
lbbed.Caption := qryjilubed.AsString;
lbname.Caption := qryjilupnm.AsString;
lbdate.Caption := prtdate;
lbitemname.Caption := qryjiluitemname.AsString;
if qryjiludosage.IsNull then qryjiludosage.AsFloat := 0.0;
lbdosage.Caption := format('%8.3f',[strtofloat(qryjiludosage.AsString)]);
lbdosunit.Caption := qryjiludosunit.AsString;
lbusagename.Caption := qryjiluusagename.AsString;
lbtmname.Caption := qryjilutmname.AsString;
lbnum.Caption := inttostr(num);
qrshape16.Width := 0;
qrshape10.Visible := True;
qrshape10.Left := 0;
prtkindid := qryjilukindid.Value;
prtname := qryjilupnm.AsString;
prtusagename := qryjiluusagename.AsString;
prttmname := qryjilutmname.AsString;
qryjilu.Next;
end;
end;
end else // if not EOF
if rowcount <> pagerow then
begin
lbnum.Caption := '';
lbitemname.Caption := '';
lbdosage.Caption := '';
lbdosunit.Caption := '';
lbusagename.Caption := '';
lbtmname.Caption := '';
qrshape10.Left := 0;
qrshape10.Width := 457;
if rowcount = 22 then qrshape16.Width := 455;
inc(rowcount);
moredata := True;
end else
moredata := False;
end;
procedure Tfrmqrjilu.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
qryjilu.Active := False;
qryjilu.Active := True;
qryjilu.First;
prtname := qryjilupnm.asString;
LBNAME.Caption := qryjilupnm.AsString;
lbbed.Caption := qryjilubed.AsString;
num := 0;
rowcount := 0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -