📄 uuesrmgrf.pas
字号:
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 + -