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

📄 xymzzjinm.pas

📁 本文重点研究的是医院西药药房管理系统
💻 PAS
字号:
unit XyMzZjInM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Grids, DBGrids, Mask, DBCtrls, ExtCtrls,db,adodb,
  Buttons,comobj;

type
  TXyMzZjIn = class(TForm)
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    listbox1: TDBLookupListBox;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel4: TPanel;
    procedure Panel1Exit(Sender: TObject);
    procedure listbox1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  XyMzZjIn: TXyMzZjIn;

implementation

{$R *.DFM}
uses
datamz;

procedure TXyMzZjIn.Panel1Exit(Sender: TObject);
begin
datamzf.XyZjQuery.edit;
dbgrid1.Fields[2].value:='';
panel1.Visible:=false;
end;

procedure TXyMzZjIn.listbox1KeyPress(Sender: TObject; var Key: Char);
begin
 case key of
   #13:
    begin
    if datamzf.XyQuery.FieldByName('ls_price').value=0 then
       ShowMessage('选定制剂药品的单价必须大于零,请先输入此药的单价!')
    else
      begin
        datamzf.XyZjQuery.edit;
        dbgrid1.Fields[8].FocusControl;
        dbgrid1.Fields[0].value:=
           datamzf.XyQuery.FieldByName('in_id').value;
        dbgrid1.Fields[3].value:=
           datamzf.XyQuery.FieldByName('yp_name').value;
        dbgrid1.Fields[4].value:=
           datamzf.XyQuery.FieldByName('yp_spec').value;
        dbgrid1.Fields[5].value:=
           datamzf.XyQuery.FieldByName('yp_unit').value;
        dbgrid1.Fields[6].value:=
           datamzf.XyQuery.FieldByName('yp_batch').value;
        dbgrid1.Fields[7].value:=
           datamzf.XyQuery.FieldByName('ls_price').value;
        datamzf.XyQuery.Active:=false;
     end;
    end;
   #27:
    begin
      dbgrid1.fields[2].focuscontrol;
      datamzf.XyQuery.Active:=false;
    end;
 end ;

end;

procedure TXyMzZjIn.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin

 if  (key=#13) and (length(trim(dbgrid1.fields[2].text))>0)
      and (dbgrid1.SelectedIndex=2) then
   begin
    with datamzf.XyQuery do
     begin
      active:=false;
      Parameters.ParamByName('@YpCode').Value := dbgrid1.fields[2].text;
      Parameters.ParamByName('@ZjIden').Value :=1;
      try
       open;
       panel1.Visible:=true;
       listbox1.SetFocus;
      except
       showmessage('文件不能打开!');
      end;
     end;
    end
   else
    begin
     if  (key=#13) and (dbgrid1.SelectedIndex=8)
          and (dbgrid1.Fields[0].value>0) then
       begin
         if datamzf.XyZjQuery.Eof=true then
            datamzf.XyZjQuery.append
         else
            datamzf.XyZjQuery.next;
         dbgrid1.fields[2].focuscontrol;
       end
      else
       if (key=#13) and (dbgrid1.Fields[0].value<=0) then
         bitbtn1.SetFocus;
    end;
end;

procedure TXyMzZjIn.BitBtn2Click(Sender: TObject);
begin
 datamzf.XyZjQuery.active:=false;
 datamzf.XyZjQuery.active:=true;
 dbgrid1.fields[2].focuscontrol;
end;

procedure TXyMzZjIn.BitBtn1Click(Sender: TObject);
var
ms:integer;
begin
 ms:=Application.messagebox('确定输入?','提示',MB_OKCANCEL);
 if ms=1 then
  begin
   try
    datamzf.XyZjInQuery.Active:=true;
   except
    showmessage('不能打开文件,操作被取消!');
    exit;

   end;
   with datamzf.XyZjQuery do
     begin
      First;
      while not eof do
       begin
        if (FieldByName('in_id').value>0)
            and (FieldByName('in_amou').value<>0)
            and (FieldByName('in_amou').value>0)then
         begin
          datamzf.XyZjInQuery.Append;
          datamzf.XyZjInQuery.FieldByName('in_id').value:=
             FieldByName('in_id').value;
          datamzf.XyZjInQuery.FieldByName('ls_price').value:=
             FieldByName('ls_price').value;
          datamzf.XyZjInQuery.FieldByName('in_amou').value:=
             FieldByName('in_amou').value;
         end;
        next;
       end;
     end;
   datamzf.XyMzValiConnection.BeginTrans;
   try
    datamzf.XyZjInQuery.Updatebatch(arAllChapters);
    datamzf.XyMzValiConnection.CommitTrans;
    datamzf.XyZjQuery.active:=false;
    datamzf.XyZjQuery.active:=true;
    datamzf.XyZjInQuery.active:=false;
    dbgrid1.fields[2].focuscontrol;
   except
    on E:EOleException do
     begin
      datamzf.XyMzValiConnection.RollbackTrans;
      showmessage(E.message);
      datamzf.XyZjInQuery.active:=false;
      dbgrid1.fields[2].focuscontrol;
     end;
    on Ed:EDatabaseError do
     begin
      datamzf.XyMzValiConnection.RollbackTrans;
      showmessage(Ed.message);
      datamzf.XyZjInQuery.active:=false;
      dbgrid1.fields[2].focuscontrol;
     end;
    else
     begin
      datamzf.XyMzValiConnection.RollbackTrans;
      showmessage('发现异常,操作被取消!');
      datamzf.XyZjInQuery.active:=false;
      dbgrid1.fields[2].focuscontrol;
      end;
   end;
 end;
end;

procedure TXyMzZjIn.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  datamzf.XyZjQuery.Active:=false;
  datamzf.XyZjInQuery.Active:=false;
  datamzf.XyQuery.Active:=false;
  XyMzZjIn.Release;

end;

procedure TXyMzZjIn.FormActivate(Sender: TObject);
begin
   try
    datamzf.XyZjQuery.Active:=true;
   except
    showmessage('打开数据表失败,可能权限不够!');
    bitbtn1.Enabled:=false;
    bitbtn2.Enabled:=false;
   end;
end;

end.

⌨️ 快捷键说明

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