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

📄 u_usermanage.pas

📁 一个简单的学籍管理软件
💻 PAS
字号:
unit U_UserManage;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  HGrids, HDBGrids, TB97Tlbr, TB97Ctls, TB97, DBTables, Db, Menus;

type
  TFm_UserManage = class(TForm)
    DDS: TDataSource;
    Dock: TDock97;
    Tb97_Func: TToolbar97;
    TbBtn_Edit: TToolbarButton97;
    TbBtn_Add: TToolbarButton97;
    TbBtn_Delete: TToolbarButton97;
    TbSep01: TToolbarSep97;
    TbBtn_Help: TToolbarButton97;
    TbBtn_Exit: TToolbarButton97;
    TbBtn_Power: TToolbarButton97;
    TbSep02: TToolbarSep97;
    MGrid: THDBGrid;
    DQuery: TQuery;
    DUpSQL: TUpdateSQL;
    DQuerys_rydm: TStringField;
    DQuerys_ryxm: TStringField;
    DQuerys_rykl: TStringField;
    PPM: TPopupMenu;
    PM_Add: TMenuItem;
    PM_Edit: TMenuItem;
    PM_Delete: TMenuItem;
    PM_Z01: TMenuItem;
    PM_Power: TMenuItem;
    PM_Help: TMenuItem;
    PM_Exit: TMenuItem;
    PM_Z02: TMenuItem;
    procedure TbBtn_ExitClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TbBtn_EditClick(Sender: TObject);
    procedure TbBtn_AddClick(Sender: TObject);
    procedure TbBtn_DeleteClick(Sender: TObject);
    procedure TbBtn_PowerClick(Sender: TObject);
    procedure TbBtn_HelpClick(Sender: TObject);
  private
    procedure RefreshUser;
  public
  end;

var
  Fm_UserManage: TFm_UserManage;

procedure Show_UserManage;

implementation

uses U_Main, U_GlobalProc, U_GlobalVar, U_UserMangeAction, U_DM, U_UserPower;

{$R *.DFM}

procedure Show_UserManage;
var
  i: integer;
begin
  for i := Fm_Main.MDIChildCount - 1 downto 0 do
  begin
    if (Fm_Main.MDIChildren[i].Name <> 'Fm_Wizard') and
      (Fm_Main.MDIChildren[i].Name <> 'Fm_UserManage') then
      Fm_Main.MDIChildren[i].Close;
  end;
  if not Assigned(Fm_UserManage) then
  begin
    Fm_UserManage := TFm_UserManage.Create(Application);
    with Fm_UserManage do
    begin
      DQuery.Open;
      if DQuery.IsEmpty then
      begin
        TbBtn_Edit.Enabled := False;
        TbBtn_Delete.Enabled := False;
      end;
      RefreshGridStyle(MGrid);
    end
  end;
  with Fm_UserManage do
  begin
    if WindowState <> wsMaximized then
      WindowState := wsMaximized;
    Show;
    SetFocus;
  end;
end;

procedure TFm_UserManage.RefreshUser;
begin
  with DQuery do
  try
    DisableControls;
    Close;
    Open;
  finally
    EnableControls;
  end;
end;

procedure TFm_UserManage.TbBtn_ExitClick(Sender: TObject);
begin
  Close;
end;

procedure TFm_UserManage.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  DQuery.Close;
  Action := caFree;
  Fm_UserManage := nil;
end;

procedure TFm_UserManage.TbBtn_EditClick(Sender: TObject);
var
  pCode, pName, pPassword: string;
begin //
  with DQuery do
  begin
    pCode := FieldByName('s_rydm').AsString;
    pName := FieldByName('s_ryxm').AsString;
    pPassword := FieldByName('s_rykl').AsString;
  end;
  if Show_UserMangeAction(pCode, pName, pPassword, 2) then
    with DQuery do
    begin
      Edit;
      FieldByName('s_rydm').AsString := pCode;
      FieldByName('s_ryxm').AsString := pName;
      FieldByName('s_rykl').AsString := pPassword;
      Post;
      ApplyUpdates;
      if pCode = U_GlobalVar.S_UserCode then
      begin
        U_GlobalVar.S_UserName := pName;
        U_GlobalVar.S_UserPassword := pPassword;
      //  刷新权限
      end;
    end;
end;

procedure TFm_UserManage.TbBtn_AddClick(Sender: TObject);
var
  pCode, pName, pPassword: string;
  tmQuery: TQuery;
begin //
  pCode := '001';
  try
    with DQuery do
    begin
      DisableControls;
      First;
      while not Eof do
      begin
        if pCode <> FieldByName('s_rydm').AsString then
          Break;
        pCode := IntFormatStr(StrToInt(pCode) + 1, 3);
        Next;
      end;
    end;
  finally
    DQuery.EnableControls;
  end;
  if Show_UserMangeAction(pCode, pName, pPassword, 1) then
  begin
    with DQuery do
    begin
      Append;
      FieldByName('s_rydm').AsString := pCode;
      FieldByName('s_ryxm').AsString := pName;
      FieldByName('s_rykl').AsString := pPassword;
      Post;
      ApplyUpdates;
    end;
    tmQuery := TQuery.Create(Application);
    with tmQuery do
    try
      DataBaseName := SysDBase;
      //  人员权限
      SQL.Text := 'INSERT INTO czryqx SELECT d1.s_rydm, d2.s_cddm, ''0'', ' +
        '''0'' FROM "czry.db" d1, "' + S_ExePath + '\SYS\cdgn.db" d2 ' +
        'WHERE d1.s_rydm=''' + pCode + '''';
      ExecSQL;
    finally
      Free;
    end;
  end;
end;

procedure TFm_UserManage.TbBtn_DeleteClick(Sender: TObject);
var
  tmQuery: TQuery;
  tmCode, tmName: string;
begin //
  tmCode := DQuery.FieldByName('s_rydm').AsString;
  tmName := DQuery.FieldByName('s_ryxm').AsString;
  if tmCode = U_GlobalVar.S_UserCode then
  begin
    MessageBeep(0);
    U_GlobalProc.Show_ErrorMess('不能删除当前操作人员。');
    Exit;
  end;

  if U_GlobalProc.Show_ConfirmMess('真的删除操作人员“' + tmName + '”吗?') then
  begin
    tmQuery := TQuery.Create(Application);
    with tmQuery do
    try
      DataBaseName := SysDBase;
      //  人员权限
      SQL.Text := 'DELETE FROM "czry.db" d1 WHERE d1.s_rydm=''' + tmCode + '''';
      ExecSQL;
      SQL.Text := 'DELETE FROM "czryqx.db" d1 WHERE d1.s_rydm=''' + tmCode + '''';
      ExecSQL;
    finally
      Free;
    end;
  end;
  RefreshUser;
end;

procedure TFm_UserManage.TbBtn_PowerClick(Sender: TObject);
begin //
  U_UserPower.Show_UserPower(DQuery.FieldByName('s_rydm').AsString);
end;

procedure TFm_UserManage.TbBtn_HelpClick(Sender: TObject);
begin //

end;

end.

⌨️ 快捷键说明

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