📄 userinfo.pas
字号:
unit userinfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Mask, DBCtrls, ComCtrls, jpeg, ExtCtrls,
Buttons;
type
Tuserinfofrm = class(TForm)
Panel1: TPanel;
Image1: TImage;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DataSource1: TDataSource;
GroupBox2: TGroupBox;
ListView1: TListView;
BitBtn2: TBitBtn;
q1: TQuery;
GroupBox3: TGroupBox;
Label5: TLabel;
Label3: TLabel;
Label1: TLabel;
c1: TComboBox;
Label2: TLabel;
Label4: TLabel;
Label6: TLabel;
TabSheet3: TTabSheet;
GroupBox1: TGroupBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
noe: TEdit;
c2: TComboBox;
Label11: TLabel;
Label12: TLabel;
namee: TEdit;
Label13: TLabel;
sexe: TEdit;
Label14: TLabel;
cole: TEdit;
Label15: TLabel;
me: TEdit;
classe: TEdit;
BitBtn1: TBitBtn;
pwe: TEdit;
BitBtn3: TBitBtn;
e1: TEdit;
e2: TEdit;
e3: TEdit;
e5: TEdit;
e4: TEdit;
BitBtn4: TBitBtn;
procedure c1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure c2Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
procedure listuserinfo;
function userisborrowed(no:string):boolean;
procedure adduser(tag:integer);
procedure autono(style: string);
function nextbookno(const str:string):string;
public
{ Public declarations }
end;
var
userinfofrm: Tuserinfofrm;
implementation
{$R *.dfm}
procedure Tuserinfofrm.c1Change(Sender: TObject);
begin
q1.SQL.clear;
q1.SQL.add('select * from student_info where 图书卡号=:jj');
q1.ParamByName('jj').AsString:=c1.Items[c1.Itemindex];
q1.Open;
e1.Text:=q1.FieldByName('姓名').AsString;
e2.text:=q1.FieldByName('性别').AsString;
e3.Text:=q1.FieldByName('院系').AsString;
e4.Text:=q1.FieldByName('专业').AsString;
e5.Text:=q1.FieldByName('班级').AsString;
q1.Close;
end;
procedure Tuserinfofrm.listuserinfo;
begin
q1.sql.Clear;
q1.sql.Add('select * from user_info order by 图书卡号' );
q1.open;
listview1.items.clear;
while not q1.Eof do
begin
with listview1.Items.Add do
begin
caption:=q1.fieldbyname('图书卡号').AsString;
subitems.Add(q1.fieldbyname('等级').AsString);
end;
q1.Next;
end;
q1.Close;
end;
procedure Tuserinfofrm.BitBtn2Click(Sender: TObject);
var ch:integer;
begin
if listview1.Selected<>nil then
begin
if listview1.Selected.SubItems[0]='0' then
begin
q1.SQL.Clear;
q1.SQL.add('delete from user_info where 图书卡号=:nn');
q1.ParamByName('nn').AsString:=listview1.Selected.Caption;
q1.ExecSQL;
q1.Close;
end
else
begin
if userisborrowed(listview1.Selected.Caption) then
begin
messagedlg('此用户尚有借书,不能删除!',mtinformation,[mbyes],0);
exit;
end;
ch:=messagedlg('确定要删除'''+listview1.Selected.Caption+'''用户吗?',mtconfirmation,[mbyes,mbno],0);
if ch=mrno then exit;
q1.SQL.Clear;
q1.SQL.add('delete from user_info where 图书卡号=:nn');
q1.ParamByName('nn').AsString:=listview1.Selected.Caption;
q1.ExecSQL;
q1.Close;
q1.SQL.Clear;
q1.SQL.add('delete from student_info where 图书卡号=:nn');
q1.ParamByName('nn').AsString:=listview1.Selected.Caption;
q1.ExecSQL;
q1.Close;
end;
end
else messagedlg('请选择删除用户!',mtinformation,[mbyes],0);
messagedlg('删除成功!',mtinformation,[mbyes],0);
listuserinfo;
end;
function Tuserinfofrm.userisborrowed(no:string):boolean;
begin
q1.SQL.Clear;
q1.SQL.Add('select * from borrow_info where 图书卡号=:n');
q1.ParamByName('n').AsString:=no;
q1.Open;
if q1.RecordCount>0 then result:=true else result:=false;
q1.Close;
end;
procedure Tuserinfofrm.c2Change(Sender: TObject);
var s:string;
begin
if c2.ItemIndex=0 then
begin
s:='0';
namee.Color:=clinfobk;
namee.Enabled:=false;
sexe.Color:=clinfobk;
sexe.Enabled:=false;
cole.Color:=clinfobk;
cole.Enabled:=false;
me.Color:=clinfobk;
me.Enabled:=false;
classe.Color:=clinfobk;
classe.Enabled:=false;
end
else
begin
s:='1';
namee.Color:=clwindow;
namee.Enabled:=true;
sexe.Color:=clwindow;
sexe.Enabled:=true;
cole.Color:=clwindow;
cole.Enabled:=true;
me.Color:=clwindow;
me.Enabled:=true;
classe.Color:=clwindow;
classe.Enabled:=true;
end ;
autono(s);
end;
procedure Tuserinfofrm.autono(style:string);
var s:string;
begin
q1.SQL.Clear;
q1.SQL.Add('select * from user_info where 等级='''+style+''''+' order by 图书卡号');
q1.Open;
q1.Last;
s:=q1.fieldbyname('图书卡号').AsString;
q1.Close;
noe.Text:=nextbookno(s);
end;
function Tuserinfofrm.nextbookno(const str:string):string;
var s,s1:string;
i,j,k:integer;
begin
s:=str;
s1:=copy(s,1,1);
delete(s,1,1);
i:=length(s);
j:=length(inttostr(strtoint(s)));
for k:=1 to i-j do s1:=s1+'0';
result:=s1+inttostr(strtoint(s)+1);
end;
procedure Tuserinfofrm.BitBtn1Click(Sender: TObject);
begin
if pwe.Text='' then
begin
messagedlg('请填写密码!',mtconfirmation,[mbyes],0);
exit;
end ;
if c2.ItemIndex=1 then
begin
if namee.Text='' then
begin
messagedlg('有未填写的信息,请补齐!',mtconfirmation,[mbyes],0);
exit;
end ;
if sexe.Text=''then
begin
messagedlg('有未填写的信息,请补齐!',mtconfirmation,[mbyes],0);
exit;
end ;
if cole.Text='' then
begin
messagedlg('有未填写的信息,请补齐!',mtconfirmation,[mbyes],0);
exit;
end ;
if me.Text='' then
begin
messagedlg('有未填写的信息,请补齐!',mtconfirmation,[mbyes],0);
exit;
end ;
if classe.Text='' then
begin
messagedlg('有未填写的信息,请补齐!',mtconfirmation,[mbyes],0);
exit;
end ;
end;
if messagedlg('确定添加吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
adduser(c2.ItemIndex);
//newfrm.FormShow(self);
end;
end;
procedure Tuserinfofrm.adduser(tag:integer);
begin
q1.SQL.Clear;
q1.SQL.Add('insert into user_info (图书卡号,等级,密码) values (:n,:c,:p)');
q1.ParamByName('n').AsString:=noe.Text;
q1.ParamByName('p').Asstring:=pwe.Text;
q1.ParamByName('c').AsString:=inttostr(tag);
q1.ExecSQL;
q1.close;
if tag=1 then //学生
begin
q1.SQL.Clear;
q1.SQL.Add('insert into student_info (图书卡号,姓名,性别,院系,专业,班级) values (:no,:name,:sex,:cl,:major,:cla)');
q1.ParamByName('no').AsString:=noe.Text;
q1.ParamByName('name').Asstring:=namee.Text;
q1.ParamByName('sex').AsString:=sexe.Text;
q1.ParamByName('cl').AsString:=cole.Text;
q1.ParamByName('major').AsString:=me.Text;
q1.ParamByName('cla').AsString:=classe.Text;
q1.ExecSQL;
q1.Close;
end;
messagedlg('新'+c2.Text+'已经成功添加!',mtconfirmation,[mbyes],0);
pwe.Clear;
namee.Clear;
sexe.Clear;
cole.Clear;
me.Clear;
classe.Clear;
end;
procedure Tuserinfofrm.TabSheet3Show(Sender: TObject);
begin
noe.Color:=clinfobk;
if c2.ItemIndex=0 then
begin
namee.Color:=clinfobk;
namee.Enabled:=false;
sexe.Color:=clinfobk;
sexe.Enabled:=false;
cole.Color:=clinfobk;
cole.Enabled:=false;
me.Color:=clinfobk;
me.Enabled:=false;
classe.Color:=clinfobk;
classe.Enabled:=false;
end
else
begin
namee.Color:=clwindow;
namee.Enabled:=true;
sexe.Color:=clwindow;
sexe.Enabled:=true;
cole.Color:=clwindow;
cole.Enabled:=true;
me.Color:=clwindow;
me.Enabled:=true;
classe.Color:=clwindow;
classe.Enabled:=true;
end;
end;
procedure Tuserinfofrm.BitBtn3Click(Sender: TObject);
begin
if messagedlg('确定修改吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
q1.SQL.Clear;
q1.SQL.Add('update student_info set 姓名=:name,性别=:sex,院系=:c,专业=:m,班级=:cl where 图书卡号=:no');
q1.ParamByName('name').AsString:=e1.Text;
q1.ParamByName('sex').AsString:=e2.Text;
q1.ParamByName('c').AsString:=e3.Text;
q1.ParamByName('m').AsString:=e4.Text;
q1.ParamByName('cl').AsString:=e5.Text;
q1.ParamByName('no').AsString:=c1.Items[c1.itemindex];
q1.ExecSQL;
q1.Close;
end;
end;
procedure Tuserinfofrm.TabSheet2Show(Sender: TObject);
begin
listuserinfo;
end;
procedure Tuserinfofrm.TabSheet1Show(Sender: TObject);
begin
//c1.OnChange(self);
q1.SQL.Clear;
q1.SQL.Add('select * from student_info order by 图书卡号');
q1.Open;
c1.Items.Clear;
while not q1.Eof do
begin
c1.Items.Add(q1.fieldbyname('图书卡号').asstring);
q1.Next;
end;
q1.close;
end;
procedure Tuserinfofrm.BitBtn4Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -