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

📄 staffclass.pas

📁 模块名称: 一、基础信息管理 碟片管理 歌曲管理 歌星管理 人员管理 二、借阅管理 借出登记 归还登记 借阅查询 其它管理 三、系统管理 权限设置 更改密
💻 PAS
字号:
unit StaffClass;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst, Grids, DBGrids, ExtCtrls, Buttons, DB, ADODB;

type
  TfrmStaffClass = class(TForm)
    Panel4: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit_Name: TEdit;
    Edit_No: TEdit;
    BtnQuery: TBitBtn;
    GroupBox2: TGroupBox;
    Bevel1: TBevel;
    Label3: TLabel;
    Label4: TLabel;
    Edit_StaffNo: TEdit;
    Edit_StaffName: TEdit;
    Panel2: TPanel;
    BtnOK: TBitBtn;
    BtnUndo: TBitBtn;
    BtnEdit: TBitBtn;
    BtnExit: TBitBtn;
    Panel1: TPanel;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    Panel7: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    BtnSelAll: TBitBtn;
    BtnSelNo: TBitBtn;
    RightListBox: TCheckListBox;
    QryStaff: TADOQuery;
    QryComm: TADOQuery;
    dsStaff: TDataSource;
    procedure BtnQueryClick(Sender: TObject);
    procedure BtnOKClick(Sender: TObject);
    procedure BtnUndoClick(Sender: TObject);
    procedure BtnEditClick(Sender: TObject);
    procedure BtnExitClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BtnSelAllClick(Sender: TObject);
    procedure BtnSelNoClick(Sender: TObject);
    procedure QryStaffAfterScroll(DataSet: TDataSet);
    procedure Edit_StaffNoKeyPress(Sender: TObject; var Key: Char);
    procedure Edit_NoKeyPress(Sender: TObject; var Key: Char);
    procedure Edit_StaffNameKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    EditFlags:Integer;  //0:Normal;  1:Add;  2:Edit;
    procedure SetButtonStatu(AFlags: Bool);
    procedure SetEditStatu(AFlags:Bool);
    procedure ReadToEdit();
    procedure ClearEdit;
  public
    { Public declarations }
  end;

var
  frmStaffClass: TfrmStaffClass;

implementation

uses CDDM, uCommon;

{$R *.dfm}

procedure TfrmStaffClass.BtnQueryClick(Sender: TObject);
var  pStaffno,pStaffname:string;
begin
  ClearEdit;
  if  trim(Edit_No.text)=''  then
    pstaffno:=' 1=1 '
  else
    pstaffno:=' 编码  Like  "%'+trim(edit_no.text)+'%"';
  if  trim(Edit_Name.text)=''  then
    pstaffname:=' and 1=1 '
  else
    pstaffname:=' and 借阅人姓名  Like  "%'+trim(edit_name.text)+'%"';
  with  QryStaff  do
  begin
    Close;
    SQL.CLear;
    SQL.Add('Select  *  from  借阅人表  where  '+pstaffno+pstaffname);
    Open;
  end;
end;

procedure TfrmStaffClass.BtnOKClick(Sender: TObject);
var  pStaffRight:string;
     I:Integer;
begin
  if  Trim(Edit_StaffNo.Text)=''  then  begin
      Application.MessageBox('请输入员工工号!','提示',MB_OK+MB_ICONINFORMATION);
      Edit_StaffNo.SetFocus;
      Exit;
  end;
  if  Trim(Edit_StaffName.Text)=''  then  begin
      Application.MessageBox('请输入员工姓名!','提示',MB_OK+MB_ICONINFORMATION);
      Edit_StaffName.SetFocus;
      Exit;
  end;



  {if  trim(Edit_Password.Text)=''   then  begin
      Application.MessageBox('密码不能为空!','提示',MB_OK+MB_ICONINFORMATION);
      Edit_Password.SetFocus;
      Exit;
  end;}


  case EditFlags  of
    1:begin
      end;
    2:begin
        with  QryComm  do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select  编码  from  借阅人表  Where  编码=:p_StaffNo');
          SQL.Add('And  借阅人ID<>:P_StaffID');
          Parameters.ParamByName('p_Staffid').Value:=QryStaff.FieldByName('借阅人ID').asinteger;
          Parameters.ParamByName('p_Staffno').Value:=Trim(Edit_Staffno.Text);
          Open;
          if  not IsEmpty  then  begin
            Application.MessageBox('此工号已存在!','提示',MB_OK+MB_ICONINFORMATION);
            Edit_Staffno.SetFocus;
            Exit;
          end;

          Close;
          SQL.Clear;
          SQL.Add('Update  借阅人表  Set ');
          SQL.Add('编码=:p_Staffno,借阅人姓名=:p_StaffName,');
          SQL.Add('权限=:p_Class  where  借阅人ID=:p_Staffid');
          Parameters.ParamByName('p_Staffid').Value:=QryStaff.FieldByName('借阅人ID').AsInteger;
          Parameters.ParamByName('p_Staffno').Value:=Edit_Staffno.Text;
          Parameters.ParamByName('p_StaffName').Value:=Edit_StaffName.Text;
          //Parameters.ParamByName('p_sex').Value:=Cmb_sex.Text;
          //Parameters.ParamByName('p_sJob').Value:=edt_Job.Text;
          pStaffRight:='';//权限
          for i:=0 to  RightListBox.items.Count-1 do
          begin
             if  RightListBox.Checked[i]=True  then
                 pStaffRight:=pStaffRight+'1'
             else
                 pStaffRight:=pStaffRight+'0';
          end;
          Parameters.ParamByName('p_Class').Value:=pStaffRight;
          try

            ExecSQL;
            QryStaff.Close;
            QryStaff.Open;

          except

            Application.MessageBox('修改记录失败!','提示',MB_OK+MB_ICONEXCLAMATION);
            Exit;
          end;
        end;
      end;
  end;
  EditFlags:=0;
  SetButtonStatu(True);
  SetEditStatu(False);
end;

procedure TfrmStaffClass.BtnUndoClick(Sender: TObject);
begin
  EditFlags:=0;
  SetButtonStatu(True);
  SetEditStatu(False);
  ReadToEdit;
end;

procedure TfrmStaffClass.BtnEditClick(Sender: TObject);
begin
  if  (QryStaff.Active=False) or (QryStaff.IsEmpty)  then  Exit;
  EditFlags:=2;
  SetButtonStatu(False);
  SetEditStatu(True);
  Edit_StaffNo.SetFocus;
end;

procedure TfrmStaffClass.BtnExitClick(Sender: TObject);
begin
  close;
end;

procedure TfrmStaffClass.FormActivate(Sender: TObject);
begin
  if  QryStaff.Active=False  then  QryStaff.Open;
  ReadToEdit;
end;

procedure TfrmStaffClass.BtnSelAllClick(Sender: TObject);
var  I:Integer;
begin
  for i:=0 to  RightListBox.items.Count-1 do
  begin
     RightListBox.Checked[i]:=True;
  end;
end;

procedure TfrmStaffClass.BtnSelNoClick(Sender: TObject);
var  I:Integer;
begin
  for i:=0 to  RightListBox.items.Count-1 do
  begin
     RightListBox.Checked[i]:=False;
  end;
end;

procedure TfrmStaffClass.ClearEdit;
begin
  Edit_Staffno.text:='';
  Edit_StaffName.text:='';
end;

procedure TfrmStaffClass.ReadToEdit;
var i:integer;
    tmpright:pchar;
begin
  ClearEdit;
  if  (QryStaff.Active=False) or (QryStaff.IsEmpty)  then  Exit;
  with  QryStaff  do
  begin
    Edit_Staffno.Text:=FieldByName('编码').AsString;
    Edit_StaffName.Text:=FieldByName('借阅人姓名').AsString;

    //Cmb_sex.text :=FieldByName('sex').AsString;
    //edt_Job.text :=FieldByName('Department').AsString;
    tmpright:=pchar(FieldByName('权限').AsString);
  end;
  //权限

  for  i:=0  to  RightListBox.items.Count-1   do
  begin
    if  tmpright[i]='1' then
        RightListBox.Checked[i]:=True
    else
        RightListBox.Checked[i]:=False;
  end;


end;

procedure TfrmStaffClass.SetButtonStatu(AFlags: Bool);
begin
  BtnOk.Enabled:=not AFlags;
  BtnUndo.Enabled:=not AFlags;

  BtnEdit.Enabled:=AFlags;

  //BtnExit.Enabled:=AFlags;
  DBGrid1.Enabled:=AFlags;


end;

procedure TfrmStaffClass.SetEditStatu(AFlags: Bool);
begin
  Panel3.Enabled:=not AFlags;
  Panel5.Enabled:=AFlags;
  BtnSelAll.Enabled:=AFlags;
  BtnSelNo.Enabled:=AFlags;

  GroupBox1.Enabled:=not AFlags;
  GroupBox2.Enabled:=AFlags;
  //
  Edit_StaffNo.Color:=iif(AFlags,clWhite,clScrollBar);
  Edit_StaffName.Color:=iif(AFlags,clWhite,clScrollBar);
  //Cmb_Sex.Color:=iif(AFlags,clWhite,clScrollBar);

  //edt_Job.Color:=iif(AFlags,clWhite,clScrollBar);

  RightListBox.Color:=iif(AFlags,clWhite,clScrollBar);
end;

procedure TfrmStaffClass.QryStaffAfterScroll(DataSet: TDataSet);
begin
  ReadToEdit;
end;

procedure TfrmStaffClass.Edit_StaffNoKeyPress(Sender: TObject; var Key: Char);
begin
  if  Key=#13  then   perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmStaffClass.Edit_NoKeyPress(Sender: TObject; var Key: Char);
begin
  if  Key=#13  then   perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmStaffClass.Edit_StaffNameKeyPress(Sender: TObject; var Key: Char);
begin
  if  Key=#13  then   BtnQueryClick(nil);
end;

end.

⌨️ 快捷键说明

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