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

📄 purnewuser.pas

📁 权限管理
💻 PAS
字号:
unit PurNewUser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, Mask, DBCtrls, DB, DBClient, ADODB;

type
  TTypeOfNewUser = (tnuNew,tnuModify);//调用窗口是修改还是新建权限组
  TFrmDPurNewUser = class(TForm)
    GroupBox2: TGroupBox;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    GroupBox4: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DBEdtXb: TDBEdit;
    DBEdtGw: TDBEdit;
    DBEdtZw: TDBEdit;
    DataSource1: TDataSource;
    EdtDlmz: TEdit;
    EdtDlmm: TEdit;
    Label6: TLabel;
    EdtQrmm: TEdit;
    ADODataSet1: TADODataSet;
    btnOk: TButton;
    btnCancel: TButton;
    ADODataSet2: TADODataSet;
    procedure FormCreate(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure ADODataSet1AfterScroll(DataSet: TDataSet);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
    FTypeOfNewUser:TTypeOfNewUser ;
    FPreDlmz :string;
    //FUserMc:string;
   // FUserMs:string;
    FUserID:integer;
    FClose : Boolean ;
    procedure setTypeOfNewUser(value:TTypeOfNewUser);
    procedure setUserID(value:integer);
   // procedure setUserMc(value:string);
   // procedure setUserMs(value:string);
  public
    { Public declarations }
    property TypeOfNewUser:TTypeOfNewUser read FTypeOfNewUser
        write setTypeOfNewUser default tnuNew ;
    property UserID:integer read FUserID write setUserID default 0 ;
  end;

  //对密码进行加密
  function EncryptStr(const SBefor: PChar; Key: Word;var SAfter:PChar):
    Integer;stdCall;external 'ERPPublic.dll';

var
  FrmDPurNewUser: TFrmDPurNewUser;

implementation

uses PublicModel, DataModule;
{uses U_SuDataClient, U_Exception,U_Instances;}

{$R *.dfm}

procedure TFrmDPurNewUser.FormCreate(Sender: TObject);
begin
  inherited;
  DBGrid1.Columns[0].FieldName := 'Per_Code';
  DBGrid1.Columns[1].FieldName := 'Per_Name';
  DBEdtXb.DataField := 'Per_sex';
  DBEdtGw.DataField := 'Per_gw';
  DBEdtZw.DataField := 'Per_zw';
  FClose := True ;
end;

procedure TFrmDPurNewUser.setTypeOfNewUser(value:TTypeOfNewUser);
var
  msgError,sSQL:string;
begin
  FTypeOfNewUser := value ;
  if FTypeOfNewUser = tnuNew then
  begin
    caption := '新加用户';
    sSQL := 'select *  from PMPerson where Per_dlmz = '''' or '
        + ' Per_dlmz is null';
    msgError := '没有公司新员工档案,请在公司人员维护中添加新员工!';
  end
  else
  begin
    caption := '修改用户';
    sSQL := 'select *  from PMPerson where not (Per_dlmz = '''' or '
        + 'Per_dlmz is null)';
    msgError := '没有系统用户档案,请添加新用户!'
  end;
  ExecQuery(ADODataSet1, sSQL);
  if ADODataSet1.RecordCount <= 0 then
  begin
    showErrMsg(msgError);
    ADODataSet1.Active := false;
  end;
end;

procedure TFrmDPurNewUser.setUserID(value:integer);
begin
  FUserID := value;
  if (FTypeOfNewUser = tnuModify) and  ADODataSet1.Active then
  begin
    ADODataSet1.Locate('Per_i',FUserID,[loPartialKey] );  
  end;
end;

procedure TFrmDPurNewUser.btnOKClick(Sender: TObject);
var
  strSQL:string;
  key,len:integer;
  sjkmm:PChar;
begin
  if  trim(EdtDlmz.Text) = '' then
  begin
    showInfMsg('登录名字不能为空!');
    EdtDlmz.SetFocus;
    FClose := False ;
    exit;
  end;

  if (FTypeOfNewUser = tnuNew) or
    ((FTypeOfNewUser = tnuModify) and (FPreDlmz <> Trim(EdtDlmz.Text)))
  then
  begin
    strSQL := 'select Per_dlmz from PMPerson where Per_dlmz = '''
      + Trim(EdtDlmz.Text) + '''';
    ExecQuery(ADODataSet2, strSQL);
    if  not ADODataSet2.IsEmpty then
    begin
      showInfMsg('登录名字' + Trim(EdtDlmz.Text) + '已经存在,请重新选择!');
      EdtDlmz.SetFocus;
      FClose := False ;
      exit;
    end;
  end;

  if not (trim(EdtQrmm.Text) = trim(EdtDlmm.Text)) then
  begin
    showInfMsg('两次输入密码不一致!');
    EdtQrmm.SetFocus;
    FClose := False ;
    exit;
  end;

  if trim(EdtQrmm.Text) = '' then
  begin
    showInfMsg('密码不能为空!');
    EdtQrmm.SetFocus;
    FClose := False ;
    exit;
  end;

  try
    key := ord((Trim(EdtDlmz.Text))[1]);
    len := length(trim(EdtDlmm.Text))*2 ;
    GetMem(sjkmm,len + 1);
    (sjkmm + len)^ := #0;
    EncryptStr(PChar(trim(EdtDlmm.Text)),key,sjkmm );
    strSQL := 'update PMPerson set Per_dlmz =''' + trim(EdtDlmz.Text) +
          ''' ,Per_dlmm = ''' + sjkmm + '''  where Per_i = ' +
              IntToStr(FUserID) ;
    FreeMem(sjkmm);
    ExecQuery2(strSQL);
  except
    showErrMsg('数据库读写错误!');
  end;
  inherited;
end;

procedure TFrmDPurNewUser.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
  inherited;
  FPreDlmz := trim(ADODataSet1.fieldByName('Per_dlmz').AsString);
  EdtDlmz.text := FPreDlmz ;
  EdtDlmm.text := '';
  EdtQrmm.text := '';
  FUserID := ADODataSet1.fieldByName('Per_i').AsInteger;
end;

procedure TFrmDPurNewUser.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose := FClose ;
  FClose := True ;
end;

end.

⌨️ 快捷键说明

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