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

📄 frm_useredit.pas

📁 这是一个基于delphi平台的物流空运管理系统!
💻 PAS
字号:
unit Frm_UserEdit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Frm_Cargo, Grids, BaseGrid, AdvGrid, StdCtrls, XPMenu, DB, ADODB;

type
  TFrmUserEdit = class(TFrmCargo)
    Label10: TLabel;
    CmbUserFG: TComboBox;
    Label1: TLabel;
    EdtUserID: TEdit;
    Label2: TLabel;
    EdtLoginName: TEdit;
    Label4: TLabel;
    EdtLoginPass: TEdit;
    Label5: TLabel;
    EdtConfirmPass: TEdit;
    Label6: TLabel;
    EdtUserName: TEdit;
    Label7: TLabel;
    EdtUserTele: TEdit;
    Label8: TLabel;
    CmbDept: TComboBox;
    Label9: TLabel;
    CmbUserDuty: TComboBox;
    Label3: TLabel;
    EdtRightsGrade: TEdit;
    GridFunc: TAdvStringGrid;
    Button1: TButton;
    BtnAdd: TButton;
    BtnSave: TButton;
    BtnClose: TButton;
    QryTemp: TADOQuery;
    procedure Button1Click(Sender: TObject);
    procedure BtnAddClick(Sender: TObject);
    procedure BtnSaveClick(Sender: TObject);
    procedure BtnCloseClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CmbDeptExit(Sender: TObject);
  private
    { Private declarations }
  public
  IsEdit: Boolean;
    UserCode, ModuleNo, LoginName: string;
    RightsValue: string;
    RightsGrade: string;
    { Public declarations }
  end;

var
  FrmUserEdit: TFrmUserEdit;

implementation

uses Frm_UserRightEdit, Frm_Main, Frm_UserInfo;

{$R *.dfm}

procedure TFrmUserEdit.Button1Click(Sender: TObject);
begin
  inherited;
  FrmUserRightEdit := TFrmUserRightEdit.Create(Self);
  FrmUserRightEdit.ShowModal;
end;

procedure TFrmUserEdit.BtnAddClick(Sender: TObject);
begin
  inherited;
  EdtUserId.Text := '';
  EdtLoginPass.Text := '';
  EdtConfirmPass.Text := '';
  EdtLoginName.Text := '';
  EdtUserName.Text := '';
  EdtUserTele.Text := '';
  CmbDept.Text := '';
  RightsValue := '';
  RightsGrade := '';
  EdtRightsGrade.Text := '';
  UserCode := '';
  CmbUserDuty.Text := '';
  GridFunc.Clear;
  BtnAdd.Enabled := False;
  IsEdit := False;
  EdtUserID.SetFocus;
end;

procedure TFrmUserEdit.BtnSaveClick(Sender: TObject);
var
  SqlStr: string;
  TempRowCount, i: Integer;
  BeUpdateCode: Boolean;
  //T:Integer;
begin
  inherited;
  if EdtUserID.Text = '' then
  begin
    EdtUserID.SetFocus;
    Exit;
  end;

  if CmbUserFG.Text = '' then
  begin
    EdtUserID.SetFocus;
    Exit;
  end;

  if EdtLoginName.Text = '' then
  begin
    EdtLoginName.SetFocus;
    Exit;
  end;

  if EdtLoginPass.Text = '' then
  begin
    EdtLoginPass.SetFocus;
    Exit;
  end;

  if EdtLoginPass.Text <> EdtConfirmPass.Text then
  begin
    EdtConfirmPass.SetFocus;
    Exit;
  end;

  if EdtUserID.Text <> UserCode then //判断主健是否存在
  begin
    if FrmMain.CheckExistCount('UserID', EdtUserID.Text, 'FuncRights') > 0 then
    begin
      EdtUserID.SetFocus;
      exit;
    end;
  end;

  if EdtLoginName.Text <> LoginName then //判断主健是否存在
  begin
    if FrmMain.CheckExistCount('LoginName', EdtLoginName.Text, 'FuncRights') > 0 then
    begin
      ShowMessage('登陆名称已存在,请重新输入');
      EdtUserID.SetFocus;
      exit;
    end;
  end;

  if IsEdit then
  begin
    try
      BeUpdateCode := false;
      if UpperCase(EdtUserID.Text) = UpperCase(UserCode) then
      else
      begin
        if (FrmMain.CheckExistCount('UserID', UserCode, 'UserFileNo') > 0) then
        begin
          Showmessage('此数据与其它表关联,不可修改!');
          Exit
        end
        else
          BeUpdateCode := true;
      end;

      if BeUpdateCode then
        SqlStr := 'UpDate FuncRights set LoginPass=''' + Trim(EdtLoginPass.Text) + ''',LoginName=''' + Trim(EdtLoginName.Text) + ''',UserFG=''' + CmbUserFG.Text + ''','
          + 'UserName=''' + Trim(EdtUserName.Text) + ''',UserTele=''' + Trim(EdtUserTele.Text) + ''',UserDept=''' + Trim(FrmMain.GetFieldText(CmbDept.Text, 1)) + ''',UserDuty=''' + Trim(CmbUserDuty.Text) + ''','
          + 'RightsValue=''' + FrmMain.FullStrYh(Trim(RightsValue)) + ''',RightsGrade=''' + FrmMain.FullStrYh(trim(RightsGrade)) + ''' where UserID=''' + trim(UserCode) + ''''
      else
        SqlStr := 'UpDate FuncRights set UserID=''' + EdtUserID.Text + ''',LoginPass=''' + Trim(EdtLoginPass.Text) + ''',LoginName=''' + Trim(EdtLoginName.Text) + ''',UserFG=''' + CmbUserFG.Text + ''','
          + 'UserName=''' + Trim(EdtUserName.Text) + ''',UserTele=''' + Trim(EdtUserTele.Text) + ''',UserDept=''' + Trim(FrmMain.GetFieldText(CmbDept.Text, 1)) + ''',UserDuty=''' + Trim(CmbUserDuty.Text) + ''','
          + 'RightsValue=''' + FrmMain.FullStrYh(Trim(RightsValue)) + ''',RightsGrade=''' + FrmMain.FullStrYh(trim(RightsGrade)) + ''' where UserID=''' + trim(UserCode)+'''';

      if Frmmain.ExecSQL(SqlStr) then
      else
      begin
        exit;
      end;

      UserCode := EdtUserID.Text;
      LoginName := EdtLoginName.Text;
      with FrmUserInfo do
      begin
        GridUser.Cells[0, CurrentRow] := Trim(EdtUserID.Text);
        GridUser.Cells[1, CurrentRow] := trim(EdtLoginName.Text);
        GridUser.Cells[2, CurrentRow] := trim(EdtUserName.Text);
        GridUser.Cells[3, CurrentRow] := trim(EdtUserTele.Text);
        GridUser.Cells[4, CurrentRow] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
        GridUser.Cells[5, CurrentRow] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
        GridUser.Cells[6, CurrentRow] := Trim(CmbUserDuty.Text);
        GridUser.Cells[7, CurrentRow] := Trim(RightsValue);
        if GridUser.Cells[7, CurrentRow] = '' then
        begin
          SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
          FrmMain.AddGridData(GridFunc, SqlStr);
        end
        else
        begin
          SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, CurrentRow] + ')';
          FrmMain.AddGridData(GridFunc, SqlStr);
        end;
        GridUser.Cells[8, CurrentRow] := Trim(RightsGrade);
      end;
    except
      exit;
    end;
  end
  else
  begin
    try
      SqlStr := 'Insert Into FuncRights(UserID,LoginPass,LoginName,UserFG,'
        + 'UserName,UserTele,UserDept,UserDuty,RightsValue,RightsGrade) '
        + 'values(';
      FrmMain.InsStr(SqlStr, trim(EdtUserID.Text), ',');
      FrmMain.InsStr(SqlStr, trim(EdtLoginPass.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(EdtLoginName.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(CmbUserFg.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(EdtUserName.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(EdtUserTele.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(FrmMain.GetFieldText(CmbDept.Text, 1)), ',');
      FrmMain.InsStr(SqlStr, Trim(CmbUserDuty.Text), ',');
      FrmMain.InsStr(SqlStr, Trim(RightsValue), ',');
      FrmMain.InsStr(SqlStr, Trim(RightsGrade), '');
      if FrmMain.ExecSQL(SqlStr) then
      else
      begin
        exit;
      end;

      IsEdit := true;
      BtnAdd.Enabled := True;
      UserCode := EdtUserID.Text;
      with FrmUserInfo do
      begin
        TempRowCount := GridUser.RowCount;
        if GridUser.Cells[0, 1] = '' then
        begin
          GridUser.Cells[0, 1] := Trim(EdtUserID.Text);
          GridUser.Cells[1, 1] := trim(EdtLoginName.Text);
          GridUser.Cells[2, 1] := trim(EdtUserName.Text);
          GridUser.Cells[3, 1] := trim(EdtUserTele.Text);
          GridUser.Cells[4, 1] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
          GridUser.Cells[5, 1] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
          GridUser.Cells[6, 1] := Trim(CmbUserDuty.Text);
          GridUser.Cells[7, 1] := Trim(RightsValue);
          if GridUser.Cells[7, 1] = '' then
          begin
            SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
            Frmmain.AddGridData(GridFunc, SqlStr);
          end
          else
          begin
            SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, 1] + ')';
            Frmmain.AddGridData(GridFunc, SqlStr);
          end;
          GridUser.Cells[8, 1] := Trim(RightsGrade);
          GridUser.SelectRows(1, 1);
          CurrentRow := 1;
        end
        else
        begin
          GridUser.AddRow;
          GridUser.Cells[0, TempRowCount] := Trim(EdtUserID.Text);
          GridUser.Cells[1, TempRowCount] := trim(EdtLoginName.Text);
          GridUser.Cells[2, TempRowCount] := trim(EdtUserName.Text);
          GridUser.Cells[3, TempRowCount] := trim(EdtUserTele.Text);
          GridUser.Cells[4, TempRowCount] := trim(FrmMain.GetFieldText(CmbDept.Text, 1));
          GridUser.Cells[5, TempRowCount] := trim(FrmMain.GetFieldText(CmbDept.Text, 2));
          GridUser.Cells[6, TempRowCount] := Trim(CmbUserDuty.Text);
          GridUser.Cells[7, TempRowCount] := Trim(RightsValue);
          if GridUser.Cells[7, CurrentRow] = '' then
          begin
            SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in ('''')';
            FrmMain.AddGridData(GridFunc, SqlStr);
          end
          else
          begin
            SqLStr := 'Select FuncName,FuncViewName From SysFunc Where FuncName in (' + GridUser.Cells[7, CurrentRow] + ')';
            FrmMain.AddGridData(GridFunc, SqlStr);
          end;
          GridUser.Cells[8, TempRowCount] := Trim(RightsGrade);
          GridUser.SelectRows(TempRowCount, 1);
          CurrentRow := TempRowCount;
        end;
      end;

    except
      exit;
    end;
end;
end;

procedure TFrmUserEdit.BtnCloseClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TFrmUserEdit.FormActivate(Sender: TObject);
var
  SqlStr: string;
  I: Integer;
begin
  inherited;
  if IsEdit then
  begin
    with QryTemp do
    begin
      Close;
      Sql.Clear;
      Sql.Text := 'Select UserID,LoginPass,LoginName,UserName,UserFG,'
        + 'UserTele,UserDept,UserDuty,RightsValue,RightsGrade'
        + ' From FuncRights Where UserID=''' + UserCode + '''';
      Open;
      EdtUserID.Text := FieldByname('UserID').AsString;
      EdtLoginPass.Text := FieldByname('LoginPass').AsString;
      CmbUserFg.Text := FieldBYname('UserFg').AsString;
      EdtConfirmPass.Text := FieldByName('LoginPass').AsString;
      EdtLoginName.Text := FieldBYName('LoginName').AsString;
      EdtUserName.Text := FieldBYName('UserName').AsString;
      EdtUserTele.Text := FieldBYName('UserTele').AsString;
      CmbDept.Text := FrmMain.SetComboBoxText(FieldByName('UserDept').AsString, CmbDept);
      CmbUserDuty.Text := FieldByName('UserDuty').AsString;
      RightsValue := FieldByName('RightsValue').AsString;
      EdtRightsGrade.Text := FieldByName('RightsGrade').AsString;
      RightsGrade := FieldByName('RightsGrade').AsString;
      if RightsValue = '' then
      begin
        GridFunc.RowCount := 2;
      end
      else
      begin
        SqLStr := 'Select FuncViewName From SysFunc Where FuncName in (' + RightsValue + ') order by SortPos';
        FrmMain.AddGridData(GridFunc, SqlStr);
      end;
    end;
  end;
end;

procedure TFrmUserEdit.FormCreate(Sender: TObject);
var
  SqlStr: string;
begin
  inherited;
  SqlStr := 'Select Code,CName from DeptmentInfo';
  FrmMain.Full_FilterCombobox(CmbDept, SqlStr, 'Code', 'CName');
  SQLStr := 'Select distinct UserDuty from FuncRights';
  FrmMain.Full_FilterCombobox(CmbUserDuty, SqlStr, 'UserDuty');
end;

procedure TFrmUserEdit.CmbDeptExit(Sender: TObject);
begin
  inherited;
 CmbDept.Text := FrmMain.CheckComboBox(CmbDept);
end;

end.

⌨️ 快捷键说明

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