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

📄 uuesrmgrf.pas

📁 图书管理系统 用于进行图书的管理
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uUesrMgrF;

interface

uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls,dbtables, Db;

type
  TUserMgrF = class(TFrame)
    Button1: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    StaticText1: TStaticText;
    ComboBox1: TComboBox;
    Button2: TButton;
    CheckBox1: TCheckBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    ListView1: TListView;
    ListBox1: TListBox;
    GroupBox2: TGroupBox;
    ListView2: TListView;
    Button3: TButton;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    GroupBox5: TGroupBox;
    Edit3: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    StaticText6: TStaticText;
    ListBox2: TListBox;
    Button4: TButton;
    TabSheet4: TTabSheet;
    StaticText7: TStaticText;
    Button5: TButton;
    GroupBox6: TGroupBox;
    ListView3: TListView;
    Button7: TButton;
    GroupBox7: TGroupBox;
    GroupBox8: TGroupBox;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    GroupBox9: TGroupBox;
    Edit5: TEdit;
    Edit6: TEdit;
    StaticText8: TStaticText;
    StaticText9: TStaticText;
    Button8: TButton;
    Edit4: TEdit;
    StaticText10: TStaticText;
    ListView4: TListView;
    Button6: TButton;
    Button9: TButton;
    Button10: TButton;
    SaveDialog1: TSaveDialog;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    procedure Button1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure RadioButton5Click(Sender: TObject);
    procedure ListView2Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure ListView2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure RadioButton6Click(Sender: TObject);
    procedure RadioButton7Click(Sender: TObject);
    procedure ListView3Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure Button8Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure SetSQL(var Query: TQuery);
    procedure SetParam(var Query: TQuery;Param : string);
    procedure ViewUser;

    procedure RefreshUser;
    function CheckUserExist(UserID : string):boolean;
    procedure InsUser(UserID,Name,Sex,GroupID,IDCard : string);
    procedure UpdateUser(UserID,Name,Sex,GroupID,IDCard : string);
    procedure DelUser(UserID : string);
    function CheckDelUser(UserID : string):integer;
    procedure UserEditViewInit;

    procedure RefreshGroup;
    function CheckGroupExist(GroupID : string):boolean;
    procedure InsGroup(GroupID,Des : string;MaxNum : integer);
    procedure UpdateGroup(GroupID,Des : string;MaxNum:integer);
    procedure DelGroup(GroupID : string);
    procedure GroupEditViewInit;

    function GetUserTotalNum:integer;
    function GetUserNum(GroupID:string):integer;
    function GetLandedUserNum(GroupID:string):integer;
    function GetLandedBookNum(GroupID:string):integer;
    procedure RefreshCountUser;

    procedure InitGroup;
    constructor Create(AOwner : TComponent);override;
  end;

var
  UserMgrF : TUserMgrF;


implementation

uses
  uMainF, uGloabVar, uUserLandMsgF;

{$R *.DFM}

procedure TUserMgrF.Button1Click(Sender: TObject);
begin
  Parent := nil;
  MainF.Caption := '图书管理系统';
end;

constructor TUserMgrF.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  InitGroup;
  {try
    RefreshUser;
  except
    ListView2.Items.Clear;
    GroupBox2.Caption := '用户列表/共0条记录';
    MessageDlg('用户编辑:得到用户信息出错',mtError,[mbok],0);
  end;}
  try
    RefreshGroup;
  except
    ListView3.Items.Clear;
    GroupBox6.Caption := '用户身份列表/共0条记录';
    MessageDlg('身份编辑:得到用户身份信息出错',mtError,[mbok],0);
  end;
  Edit5.MaxLength := UserIDLength;
  Edit1.MaxLength := UserIDLength;
  ComboBox1.MaxLength := UserIDLength;
end;

procedure TUserMgrF.RadioButton1Click(Sender: TObject);
begin
  ComboBox1.Style := csSimple;
  ComboBox1.Text := '';
  CheckBox1.Enabled := True;
  ComboBox1.MaxLength := UserIDLength;
end;

procedure TUserMgrF.RadioButton2Click(Sender: TObject);
begin
  ComboBox1.Style := csSimple;
  ComboBox1.Text := '';
  CheckBox1.Enabled := True;
  ComboBox1.MaxLength := 0;
end;

procedure TUserMgrF.RadioButton3Click(Sender: TObject);
begin
  ComboBox1.Style := csDropDownList;
  ComboBox1.ItemIndex := 0;
  CheckBox1.Enabled := False;
  ComboBox1.MaxLength := 0;
end;

procedure TUserMgrF.SetParam(var Query: TQuery;Param : string);
begin
  if CheckBox1.Checked and CheckBox1.Enabled then
    Param := Param+'%';
  if RadioButton1.Checked then
    Query.ParamByName('UserID').AsString := Param;
  if RadioButton2.Checked then
    Query.ParamByName('Name').AsString := Param;
  if RadioButton3.Checked then
    Query.ParamByName('GroupID').AsString := Param;
end;

procedure TUserMgrF.SetSQL(var Query: TQuery);
begin
  Query.SQL.Clear;
  if RadioButton1.Checked then
    Query.SQL.Add('select Userb.* ,Des from Userb ,Groupb '+
    ' where UserID like :UserID and Userb.GroupID = Groupb.GroupID');
  if RadioButton2.Checked then
    Query.SQL.Add('select Userb.* ,Des from Userb ,Groupb '+
    'where Name like :Name and Userb.GroupID = Groupb.GroupID');
  if RadioButton3.Checked then
    Query.SQL.Add('select Userb.* ,Des from Userb ,Groupb '+
    'where Userb.GroupID like :GroupID and Userb.GroupID = Groupb.GroupID');
end;

procedure TUserMgrF.ViewUser;
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  SetSQL(Query);
  if RadioButton3.Checked then
    SetParam(Query,ListBox1.Items[ComboBox1.ItemIndex])
  else SetParam(Query,ComboBox1.Text);
  Query.Open;
  ListView1.Items.Clear;
  while not Query.Eof do
  begin
    with ListView1.Items.Add do
    begin
      Caption := Query.FieldByName('UserID').AsString;
      SubItems.Add(Query.FieldByName('Name').AsString);
      if Query.FieldByName('Sex').AsString = '1' then
        SubItems.Add('女')
      else SubItems.Add('男');
      SubItems.Add(Query.FieldByName('GroupID').AsString);
      SubItems.Add(Query.FieldByName('Des').AsString);
      SubItems.Add(Query.FieldByName('IDCard').AsString);
    end;
    Query.Next;
    StaticText7.Caption := '共'+IntToStr(Query.RecordCount)+'条记录';
  end;
  Query.Close;
  Query.Free;
end;

procedure TUserMgrF.Button2Click(Sender: TObject);
begin
  try
    ViewUser;
  except
    ListView1.Items.Clear;
    StaticText7.Caption := '共0条记录';
    MessageDlg('查询失败',mtError,[mbok],0);
  end;
end;

procedure TUserMgrF.RefreshUser;
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('select * from Userb order by UserID');
  Query.Open;

  ListView2.Items.Clear;
  while not Query.Eof do
  begin
    with ListView2.Items.Add do
    begin
      Caption := Query.FieldByName('UserID').AsString;
      SubItems.Add(Query.FieldByName('Name').AsString);
      if Query.FieldByName('Sex').AsString = '1' then
        SubItems.Add('女')
      else SubItems.Add('男');
      SubItems.Add(Query.FieldByName('GroupID').AsString);
      SubItems.Add(Query.FieldByName('IDCard').AsString);
    end;
    Query.Next;
  end;
  GroupBox2.Caption := '用户列表/共'+IntToStr(Query.RecordCount)+'条记录';
  Query.Close;
  Query.Free;

end;

procedure TUserMgrF.Button3Click(Sender: TObject);
begin
  try
    RefreshUser;
  except
    ListView2.Items.Clear;
    MessageDlg('刷新出错',mtError,[mbok],0);
  end;
end;

procedure TUserMgrF.RadioButton4Click(Sender: TObject);
begin
  Edit1.Enabled := True;
  Edit1.Color := clWindow;
end;

procedure TUserMgrF.RadioButton5Click(Sender: TObject);
begin
  Edit1.Enabled := False;
  Edit1.Color := clBtnFace;
end;

procedure TUserMgrF.ListView2Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
var
  i : integer;
  Found : boolean;
begin
  if ListView2.Selected <> nil then
  begin
    Edit1.Text := ListView2.Selected.Caption;
    Edit2.Text := ListView2.Selected.SubItems.Strings[0];
    if ListView2.Selected.SubItems.Strings[1] = '女' then
      ComboBox2.ItemIndex := 1
    else ComboBox2.ItemIndex := 0;
    Found := False;
    i := 0;
    while (Found = False)and(i<ListBox2.Items.Count) do
    begin
      if ListView2.Selected.SubItems.Strings[2] = ListBox2.Items[i] then
        Found := True
      else Inc(i);
    end;
    if Found <> True then
      i:=0;
    ComboBox3.ItemIndex := i;
    Edit3.Text := ListView2.Selected.SubItems.Strings[3];
  end;

end;

procedure TUserMgrF.ListView2MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  i : integer;
  Found : boolean;
begin
  if ListView2.Selected <> nil then
  begin
    Edit1.Text := ListView2.Selected.Caption;
    Edit2.Text := ListView2.Selected.SubItems.Strings[0];
    if ListView2.Selected.SubItems.Strings[1] = '女' then
      ComboBox2.ItemIndex := 1
    else ComboBox2.ItemIndex := 0;
    Found := False;
    i := 0;
    while (Found = False)and(i<ListBox2.Items.Count) do
    begin
      if ListView2.Selected.SubItems.Strings[2] = ListBox2.Items[i] then
        Found := True
      else Inc(i);
    end;
    if Found <> True then
      i:=0;
    ComboBox3.ItemIndex := i;
    Edit3.Text := ListView2.Selected.SubItems.Strings[3];
  end;
end;

function TUserMgrF.CheckUserExist(UserID: string): boolean;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQl.Add('select UserID from Userb where UserID=:UserID');
    Query.ParamByName('UserID').AsString := UserID;
    Query.Open;
    if Query.RecordCount = 0 then
      Result := False
    else Result := True;
    Query.Close;
    Query.Free;
  except
    Result := False;
  end;
end;

procedure TUserMgrF.DelUser(UserID: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQl.Add('delete from Userb where UserID=:UserID');
  Query.ParamByName('UserID').AsString := UserID;
  Query.ExecSQL;
  Query.Free;
end;

procedure TUserMgrF.InsUser(UserID, Name, Sex, GroupID, IDCard: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQl.Add('insert into Userb(UserID,Name,Sex,GroupID,IDCard) '+
                'values(:UserID,:Name,:Sex,:GroupID,:IDCard)');
  Query.ParamByName('UserID').AsString := UserID;
  Query.ParamByName('Name').AsString := Name;
  Query.ParamByName('Sex').AsString := Sex;
  Query.ParamByName('GroupID').AsString := GroupID;
  Query.ParamByName('IDCard').AsString := IDCard;
  Query.ExecSQL;
  Query.Free;
end;

procedure TUserMgrF.UpdateUser(UserID, Name, Sex, GroupID, IDCard: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQl.Add('update Userb set Name=:Name,Sex=:Sex,'+
                'GroupID=:GroupID,IDCard=:IDCard '+
                ' where UserID= :UserID');
  Query.ParamByName('UserID').AsString := UserID;
  Query.ParamByName('Name').AsString := Name;
  Query.ParamByName('Sex').AsString := Sex;
  Query.ParamByName('GroupID').AsString := GroupID;
  Query.ParamByName('IDCard').AsString := IDCard;
  Query.ExecSQL;
  Query.Free;
end;

procedure TUserMgrF.UserEditViewInit;
begin
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
  ComboBox2.ItemIndex := 0;
  ComboBox3.ItemIndex := 0;
  if Edit1.Enabled = True then
    Edit1.SetFocus
  else Edit2.SetFocus;  
end;

procedure TUserMgrF.Button5Click(Sender: TObject);
begin
  if RadioButton4.Checked then
  begin
    if Length(Edit1.Text)<> UserIDLength then
    begin
      MessageDlg('用户借书号不正确',mtError,[mbok],0);
      Exit;
    end;
    
    if CheckUserExist(Edit1.Text) then
    begin
      MessageDlg('用户<'+Edit1.Text+'>已经存在',mtError,[mbok],0);
      Exit;
    end;
    try
      InsUser(Edit1.Text,Edit2.Text,IntToStr(ComboBox2.ItemIndex),
              ListBox2.Items[ComboBox3.ItemIndex],Edit3.Text);
    except
      MessageDlg('添加<'+Edit1.Text+'>失败',mtError,[mbok],0);
      Exit;
    end;
  end;

  if RadioButton5.Checked then
  begin
    if Length(Edit1.Text)<> UserIDLength then
    begin
      MessageDlg('用户借书号不正确',mtError,[mbok],0);

⌨️ 快捷键说明

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