⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jilu.pas

📁 某大型医院护士站
💻 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 + -