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

📄 qxwhm.pas

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

interface

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

type
  TQxWh = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn4: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ListBox1: TDBLookupListBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    UserList1: TDBLookupListBox;
    GrBox2: TDBLookupComboBox;
    UserList2: TDBLookupListBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    procedure Edit1Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure GrBox2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn4Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  QxWh: TQxWh;

implementation
uses datamz,datamz2;
{$R *.DFM}

procedure TQxWh.Edit1Change(Sender: TObject);
begin
 if (edit1.text<>'') and (trim(edit1.Text)<>'') then
   bitbtn1.Enabled:=true
 else
   bitbtn1.Enabled:=false;

end;

procedure TQxWh.BitBtn1Click(Sender: TObject);
begin
 if edit2.Text<>edit3.Text then
   begin
    showmessage('两次口令输入不相符!');
    exit;
   end;
  Datamzf2.AdmiCommand1.CommandText:='exec sp_addlogin '+''''
     +edit1.text+''''+','+''''+edit2.text+'''';
  Datamzf2.AdmiCommand2.CommandText:='exec sp_adduser '+''''
     +edit1.text+''''+','+'''' +edit1.text+''''+','+''''
     +'西药局'+'''';

  datamzf.XyMzValiConnection.BeginTrans;
  try
    datamzf2.AdmiCommand1.Execute;
    datamzf2.AdmiCommand2.Execute;
    datamzf.XyMzValiConnection.CommitTrans;
    showmessage('添加用户成功!');
    GrBox2.KeyValue:=0;
    datamzf2.UserQuery2.Active:=false;
    datamzf2.UserQuery.active:=false;
    datamzf2.UserQuery.active:=true;
    edit1.Text:='';
    edit2.Text:='';
    edit3.Text:='';
  except
    datamzf.XyMzValiConnection.RollbackTrans;
    showmessage('操作失败,可能与其他用户名重复,权限不够!');
    edit1.Text:='';
    edit2.Text:='';
    edit3.Text:='';
  end;

end;

procedure TQxWh.BitBtn2Click(Sender: TObject);
var
  ms:integer;
begin
  if (trim(listbox1.SelectedItem)='') or (listbox1.SelectedItem='') then
    begin
     showmessage('请先选择用户名!');
     exit;
    end;
  ms:=Application.messagebox('确定删除?','提示',MB_OKCANCEL);
  if ms<>1 then
     exit;
  Datamzf2.AdmiCommand1.CommandText:='exec sp_dropuser '+''''
     +listbox1.SelectedItem+'''';
  datamzf2.AdmiCommand2.CommandText:='exec sp_droplogin '+''''
     +listbox1.selectedItem+'''';
  try
    datamzf2.AdmiCommand1.Execute;
    datamzf2.UserQuery.active:=false;
    datamzf2.UserQuery.active:=true;
    datamzf2.AdmiCommand2.Execute;
    showmessage('删除用户成功!');
    GrBox2.KeyValue:=0;
    datamzf2.UserQuery2.Active:=false;
  except
    showmessage('操作失败!');
  end;

end;

procedure TQxWh.GrBox2Click(Sender: TObject);
begin
 with datamzf2.UserQuery2 do
  begin
    Active:=false;
    Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
    Active:=true;
  end;
end;

procedure TQxWh.Button1Click(Sender: TObject);
var
 ms:integer;
begin
 ms:=Application.messagebox('确定此操作?','提示',MB_OKCANCEL);
 if ms<>1 then
     exit;
 if (UserList1.SelectedItem='') or
    (trim(userList1.SelectedItem)='') or
    (GrBox2.Text='') or
    (trim(Grbox2.text)='') then
   begin
    showmessage('请正确选择工作组和用户!');
    exit;
   end;
 datamzf2.AdmiCommand1.CommandText:='exec sp_addrolemember '+
     GrBox2.text+','+UserList1.SelectedItem;
 datamzf2.AdmiCommand1.CommandText:='exec sp_addrolemember '+
     GrBox2.text+','+UserList1.SelectedItem;
  try
    datamzf2.AdmiCommand1.Execute;
    with datamzf2.UserQuery2 do
    begin
      Active:=false;
      Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
      Active:=true;
    end;
  except
    showmessage('操作失败!');
  end;

end;

procedure TQxWh.Button2Click(Sender: TObject);
var
 ms:integer;
begin
 ms:=Application.messagebox('确定此操作?','提示',MB_OKCANCEL);
 if ms<>1 then
     exit;
 if (UserList2.SelectedItem='') or
    (trim(userList2.SelectedItem)='') then
   begin
    showmessage('请正确选择工作组和用户!');
    exit;
   end;
 datamzf2.AdmiCommand1.CommandText:='exec sp_droprolemember '+
     GrBox2.text+','+UserList2.SelectedItem;
 datamzf2.AdmiCommand1.CommandText:='exec sp_droprolemember '+
     GrBox2.text+','+UserList2.SelectedItem;
  try
    datamzf2.AdmiCommand1.Execute;
    with datamzf2.UserQuery2 do
    begin
      Active:=false;
      Parameters.ParamByName('Useruid').value:=GrBox2.KeyValue;
      Active:=true;
    end;
  except
    showmessage('操作失败!');
  end;
end;

procedure TQxWh.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
 case key of
   #48..#57:
     begin
      if ord(key)+5>57 then
         key:=char(ord(key)-5)
       else
         key:=char(ord(key)+5);
     end;
   #65..#90:
     begin
      if ord(key)+5>90 then
         key:=char(ord(key)-21)
       else
         key:=char(ord(key)+5);
     end;
   #97..#122:
     begin
      if ord(key)+5>122 then
         key:=char(ord(key)-21)
       else
         key:=char(ord(key)+5);
     end;
   #8:;
   else
    key:=#0;
  end


end;

procedure TQxWh.BitBtn4Click(Sender: TObject);
begin
  if edit4.text<>edit5.text then
    begin
     showmessage('口令与复合口令不符!');
     exit;
    end;
  if edit6.Text='' then
    Datamzf2.AdmiCommand1.CommandText:='exec sp_password null,'
     +''''+edit4.text+''''
  else
    Datamzf2.AdmiCommand1.CommandText:='exec sp_password '+
     ''''+edit6.text+''''+','+''''+edit4.text+'''';
  try
    datamzf2.AdmiCommand1.Execute;
    showmessage('操作成功!');
    edit6.Text:='';
    edit4.Text:='';
    edit5.Text:='';
  except
    showmessage('操作失败!');
  end;

end;

procedure TQxWh.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
 case key of
   #48..#57:
     begin
      if ord(key)+5>57 then
         key:=char(ord(key)-5)
       else
         key:=char(ord(key)+5);
     end;
   #65..#90:
     begin
      if ord(key)+5>90 then
         key:=char(ord(key)-21)
       else
         key:=char(ord(key)+5);
     end;
   #97..#122:
     begin
      if ord(key)+5>122 then
         key:=char(ord(key)-21)
       else
         key:=char(ord(key)+5);
     end;
   #8:;
   else
    key:=#0;
  end


end;

procedure TQxWh.FormCreate(Sender: TObject);
begin
  datamzf2.UserQuery.Active:=true;
  datamzf2.GroupQuery.Active:=true;
  datamzf2.GrQuery2.Active:=true;
end;

procedure TQxWh.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  datamzf2.UserQuery.Active:=false;
  datamzf2.GroupQuery.Active:=false;
  datamzf2.UserQuery2.Active:=false;
  datamzf2.GrQuery2.Active:=false;
  QxWh.Release;
end;

end.

⌨️ 快捷键说明

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