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

📄 wardmed.pas

📁 某大型医院护士站
💻 PAS
字号:
unit WardMed;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ImgList, fcOutlookList, fcButton, fcImgBtn, fcShapeBtn, ComCtrls,
  ExtCtrls, fcStatusBar, fcClearPanel, fcButtonGroup, fcOutlookBar, ToolWin,
  StdCtrls, Buttons, Grids, Wwdbigrd, Wwdbgrid ,db, wwdblook, fcLabel;

type
  TfrmWardMed = class(TForm)
    obFuncNav: TfcOutlookBar;
    fcStatusBar1: TfcStatusBar;
    Splitter1: TSplitter;
    pcWardMed: TPageControl;
    tsWardMedIn: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    funcLst: TfcOutlookList;
    obFuncNavfcShapeBtn1: TfcShapeBtn;
    ImageList1: TImageList;
    wwDBGrid1: TwwDBGrid;
    Panel1: TPanel;
    dtp_MedinDate: TDateTimePicker;
    lbMedDate: TLabel;
    btnPrnWardMed: TBitBtn;
    BitBtn2: TBitBtn;
    lcbItemID: TwwDBLookupCombo;
    wwDBLookupCombo1: TwwDBLookupCombo;
    lbMedTitle: TfcLabel;
    procedure BitBtn2Click(Sender: TObject);
    procedure wwDBGrid1CalcCellColors(Sender: TObject; Field: TField;
      State: TGridDrawState; Highlight: Boolean; AFont: TFont;
      ABrush: TBrush);
    procedure FormShow(Sender: TObject);
    procedure dtp_MedinDateCloseUp(Sender: TObject);
    procedure funcLstItems0Click(OutlookList: TfcCustomOutlookList;
      Item: TfcOutlookListItem);
    procedure funcLstItems1Click(OutlookList: TfcCustomOutlookList;
      Item: TfcOutlookListItem);
    procedure btnPrnWardMedClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public

  end;

var
  frmWardMed: TfrmWardMed;

implementation

uses DataModule, PRNDataModule, RpWardMed;

{$R *.DFM}

procedure TfrmWardMed.BitBtn2Click(Sender: TObject);
begin
  with PRN_DM.qryWardMedin do
  begin
    if UpdatesPending then ApplyUpdates;

    Prn_DM.qryUpdateConfirm.Close;
    Prn_DM.qryUpdateConfirm.SQL.Clear;
    Prn_DM.qryUpdateConfirm.SQL.Add('UPDATE WARDMEDIN SET CONFIRM = 1 ');
    Prn_DM.qryUpdateConfirm.SQL.Add('WHERE WARDID  = :I_WARDID');
    Prn_DM.qryUpdateConfirm.SQL.Add('  AND MEDDATE = :I_MEDDATE');
    Prn_DM.qryUpdateConfirm.SQL.Add('  AND INOROUT = :I_MEDTYPE');
    Prn_DM.qryUpdateConfirm.SQL.Add('  AND CONFIRM = 0');
    Prn_DM.qryUpdateConfirm.Params[0].AsString  := DM.currWardid;
    Prn_DM.qryUpdateConfirm.Params[1].AsDate    := Trunc(dtp_MedinDate.Date);
    Prn_DM.qryUpdateConfirm.Params[2].AsSmallint:= PRN_DM.FWardMedType;
    Prn_DM.qryUpdateConfirm.ExecSQL;

    DisableControls;
    Close;
    Open;
    EnableControls;
  end;
end;

procedure TfrmWardMed.wwDBGrid1CalcCellColors(Sender: TObject;
  Field: TField; State: TGridDrawState; Highlight: Boolean; AFont: TFont;
  ABrush: TBrush);
begin
  with PRN_DM do
  begin
    if qryWardMedinConfirm.Value = 0 then
       AFont.Color := clBlack
    else
       AFont.Color := clBlue;

    if qryWardMedinPost.Value = 1 then
       ABrush.Color  := $00E1E1FF
    else
       ABrush.Color  := $00ECFFFF;
  end;

  if HighLight then
  begin
    AFont.Color := clWhite;
    ABrush.Color := clNavy;
  end;
end;

procedure TfrmWardMed.FormShow(Sender: TObject);
begin
  with DM.qryOrderCost do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COSTID ,CNAME ,ENAME ,SPEC ,PRICE ,MADEIN , ');
    SQL.Add('DOSAGE ,BASEDOSE ,EXCODE1 ,EXCODE2 ,EXCODE3 ');
    SQL.Add(' FROM  ORDERCOST ');
    SQL.Add(' WHERE ENABLED = 1 ');
    SQL.Add(' ORDER BY COSTID ');

    lcbItemID.Selected.Clear;
    lcbItemID.Selected.Add('COSTID' + #9 + '6'  + #9 +'项目号'   + #9);
    lcbItemID.Selected.Add('CNAME'  + #9 + '20' + #9 +'中文名称' + #9);
    lcbItemID.Selected.Add('ENAME'  + #9 + '20' + #9 +'英文名称' + #9);
    lcbItemID.Selected.Add('SPEC'   + #9 + '16' + #9 +'规格'     + #9);
    lcbItemID.Selected.Add('PRICE'  + #9 + '10' + #9 +'价格'     + #9);
    lcbItemID.Selected.Add('MADEIN' + #9 + '16' + #9 +'产地');
    Open;
  end;

  DM.ExcutePos.Open;

  PRN_DM.FWardMedDate := Date;
  dtp_MedinDate.Date  := Date;

  FuncLst.Items[0].Selected := True;
  PRN_DM.FWardMedType := 1;

  with PRN_DM.qryWardMedin do
  begin
    Close;
    Params[0].AsString   := DM.currWardid;
    Params[1].AsDate     := Trunc(dtp_MedinDate.Date);
    Params[2].AsSmallInt := PRN_DM.FWardMedType;
    Open;
  end;
end;

procedure TfrmWardMed.dtp_MedinDateCloseUp(Sender: TObject);
begin
  with PRN_DM.qryWardMedin do
  begin
    DisableControls;
    Close;
    Params[0].AsString := DM.currWardid;
    Params[1].AsDate   := Trunc(dtp_MedinDate.Date);
    Params[2].AsSmallInt := PRN_DM.FWardMedType;
    Open;
    EnableControls;
  end;

  PRN_DM.FWardMedDate := dtp_MedinDate.Date;
end;

procedure TfrmWardMed.funcLstItems0Click(OutlookList: TfcCustomOutlookList;
  Item: TfcOutlookListItem);
begin
  if funcLst.Items[0].Selected then
  begin
    lbMedTitle.Caption := '科  室  领  药';
    lbMedTitle.Update;
    lbMedDate.Caption  := '领药日期:';
    lbMedDate.Update;
    PRN_DM.qryWardMedinMEDDATE.DisplayLabel := '领药日期';
    PRN_DM.FWardMedType := 1;

    with PRN_DM.qryWardMedin do
    begin
      DisableControls;
      Close;
      Params[0].AsString := DM.currWardid;
      Params[1].AsDate   := Trunc(dtp_MedinDate.Date);
      Params[2].AsSmallInt := PRN_DM.FWardMedType;
      Open;
      EnableControls;
    end;
  end;
end;

procedure TfrmWardMed.funcLstItems1Click(OutlookList: TfcCustomOutlookList;
  Item: TfcOutlookListItem);
begin
  if funcLst.Items[1].Selected then
  begin
    lbMedTitle.Caption  := '科  室  退  药';
    lbMedTitle.Update;
    lbMedDate.Caption   := '退药日期:';
    lbMedDate.Update;
    PRN_DM.qryWardMedinMEDDATE.DisplayLabel := '退药日期';
    PRN_DM.FWardMedType := -1;

    with PRN_DM.qryWardMedin do
    begin
      DisableControls;
      Close;
      Params[0].AsString := DM.currWardid;
      Params[1].AsDate   := Trunc(dtp_MedinDate.Date);
      Params[2].AsSmallInt := PRN_DM.FWardMedType;
      Open;
      EnableControls;
    end;
    
  end;
end;

procedure TfrmWardMed.btnPrnWardMedClick(Sender: TObject);
begin
  try
    frmRepWardMed := TfrmRepWardMed.Create(Self);

    if (Prn_DM.FWardMedType = 1) then
    begin
      frmRepWardMed.RepTitle.Caption := DM.currWardName + '领药单' ;
      frmRepWardMed.QRLabel1.Caption := '领药日期:';
      frmRepWardMed.QRLabel2.Caption := '领药人签名:';
      frmRepWardMed.QRLabel3.Caption := '发药人签名:';
    end;

    if (Prn_DM.FWardMedType = -1) then
    begin
      frmRepWardMed.RepTitle.Caption := DM.currWardName + '退药单' ;
      frmRepWardMed.QRLabel1.Caption := '退药日期:';
      frmRepWardMed.QRLabel2.Caption := '退药人签名:';
      frmRepWardMed.QRLabel3.Caption := '收药人签名:';
    end;

    frmRepWardMed.rplbMedDate.Caption := DateToStr(dtp_MedinDate.Date);

    frmRepWardMed.QuickRep1.Preview;
  finally
    frmRepWardMed.Free;
  end;
end;

procedure TfrmWardMed.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  PRN_DM.qryWardMedin.Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -