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

📄 xymzlossm.pas

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

interface

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

type
  TXyMzLoss = class(TForm)
    Panel3: TPanel;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    listbox1: TDBLookupListBox;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Panel4: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    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);
    procedure Panel1Enter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  XyMzLoss: TXyMzLoss;

implementation

{$R *.DFM}
uses datamz,datamz1;

procedure TXyMzLoss.Panel1Exit(Sender: TObject);
begin
datamzf1.XyMzLossQuery.edit;
dbgrid1.Fields[2].value:='';
panel1.Visible:=false;
end;

procedure TXyMzLoss.listbox1KeyPress(Sender: TObject; var Key: Char);
begin
 case key of
   #13:
    begin
        datamzf1.XyMzLossQuery.edit;
        dbgrid1.Fields[9].FocusControl;
        dbgrid1.Fields[0].value:=
           datamzf.XyQueryMz.FieldByName('in_id').value;
        dbgrid1.Fields[3].value:=
           datamzf.XyQueryMz.FieldByName('yp_name').value;
        dbgrid1.Fields[4].value:=
           datamzf.XyQueryMz.FieldByName('yp_spec').value;
        dbgrid1.Fields[5].value:=
           datamzf.XyQueryMz.FieldByName('yp_unit').value;
        dbgrid1.Fields[6].value:=
           datamzf.XyQueryMz.FieldByName('yp_batch').value;
        dbgrid1.Fields[7].value:=
           datamzf.XyQueryMz.FieldByName('sc_fact').value;
        dbgrid1.Fields[8].value:=
           datamzf.XyQueryMz.FieldByName('ls_price').value;
        datamzf.XyQueryMz.active:=false;
    end;
   #27:
    begin
      dbgrid1.fields[2].focuscontrol;
      datamzf.XyQueryMz.close;
    end;
 end ;

end;

procedure TXyMzLoss.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.XyQueryMz do
     begin
      active:=false;
      Parameters.ParamByName('@YpCode').Value := dbgrid1.fields[2].text;
      try
       open;
       panel1.Visible:=true;
       listbox1.SetFocus;
      except
       showmessage('文件不能打开!');
      end;
     end;
    end
  else
   begin
    if (key=#13) and (dbgrid1.selectedindex<10)
       and (dbgrid1.Fields[0].value>0) then
       dbgrid1.fields[dbgrid1.SelectedIndex+1].focuscontrol
    else
     begin
      if  (key=#13) and (dbgrid1.SelectedIndex=10)
         and (dbgrid1.Fields[0].value>0) then
       begin
        if datamzf1.XyMzLossQuery.Eof=true then
           datamzf1.XyMzLossQuery.append
        else
           datamzf1.XyMzLossQuery.next;
        dbgrid1.fields[2].focuscontrol;
       end
      else
       if (key=#13) and (dbgrid1.Fields[0].value<1) then
          bitbtn1.SetFocus;
     end;
    end;
end;

procedure TXyMzLoss.BitBtn2Click(Sender: TObject);
begin
 datamzf1.XyMzLossQuery.active:=false;
 datamzf1.XyMzLossQuery.active:=true;
 dbgrid1.fields[2].focuscontrol;
end;

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

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

procedure TXyMzLoss.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 datamzf1.XyMzLossQuery.active:=false;
 datamzf1.XyMzLossQuery1.active:=false;
 datamzf.XyQueryMz.Active:=false;
 XyMzLoss.Release;
end;

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

procedure TXyMzLoss.Panel1Enter(Sender: TObject);
begin
panel1.Visible:=true;
end;

end.

⌨️ 快捷键说明

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