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

📄 userinfo.pas

📁 好多上载非界面和非WEB源码
💻 PAS
字号:
unit userinfo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Buttons, Mask, DBCtrls, ExtCtrls,
  ComCtrls;

type
  Tuserinfofrm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    ComboBox1: TComboBox;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    rec_no: TLabel;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Table1: TTable;
    DataSource1: TDataSource;
    Panel3: TPanel;
    GroupBox1: TGroupBox;
    Panel4: TPanel;
    r1: TRadioButton;
    r2: TRadioButton;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    unamebox: TEdit;
    upwdbox: TEdit;
    utypebox: TComboBox;
    BitBtn2: TBitBtn;
    ListView1: TListView;
    BitBtn3: TBitBtn;
    Label9: TLabel;
    procedure ComboBox1Change(Sender: TObject);
    procedure Table1AfterScroll(DataSet: TDataSet);
    procedure BitBtn3Click(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure r1Click(Sender: TObject);
    procedure r2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
  procedure listuserinfo;
  function userisborrowed(u_name:string):boolean;
  procedure whichcheck;
  function userisexist(uname:string):boolean;
  function userinfomodified(s_name,s_no:string;s_class:integer):boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  userinfofrm: Tuserinfofrm;
  t:ttable;
implementation
uses global,mainfrm;
{$R *.dfm}

procedure Tuserinfofrm.ComboBox1Change(Sender: TObject);
begin
with table1 do
begin
setkey;
fieldbyname('学生证号').AsString:=combobox1.Items[combobox1.itemindex];
gotokey;
end;
end;

procedure Tuserinfofrm.Table1AfterScroll(DataSet: TDataSet);
begin
rec_no.Caption:=inttostr(table1.RecNo)+'/'+inttostr(table1.RecordCount);
end;

procedure Tuserinfofrm.FormShow(Sender: TObject);
//var
//t:ttable;
begin
table1.DatabaseName:=dbname;
table1.TableName:='stud_info.db';
table1.Open;
combobox1.Items.Clear;
while not table1.Eof do begin
combobox1.Items.Add(table1.fieldbyname('学生证号').AsString);
table1.Next;
end;
table1.First;
combobox1.ItemIndex:=0;
listuserinfo;
t:=ttable.Create(nil);
t.DatabaseName:=dbname;
t.TableName:='user_info.db';
end;

procedure Tuserinfofrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
table1.Close;
t.Free;
end;

procedure tuserinfofrm.listuserinfo;
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from user_info');
q.Open;
listview1.Items.Clear;
while not q.Eof do
begin
with listview1.Items.Add do
begin
caption:=q.fieldbyname('姓名').AsString;
subitems.Add(q.fieldbyname('等级').AsString);
end;
q.Next;
end;
label9.Caption:='共'+inttostr(listview1.Items.Count)+'个用户';
q.Close;
q.Free;
end;


procedure Tuserinfofrm.BitBtn3Click(Sender: TObject);
var
q:tquery;
ch:integer;
begin
if listview1.Selected<>nil then
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;
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('delete from user_info where 姓名=:uname');
q.ParamByName('uname').AsString:=listview1.Selected.Caption;
q.ExecSQL;
q.Close;
q.Free;
messagedlg('删除成功!',mtinformation,[mbyes],0);
listuserinfo;
unamebox.Clear;
upwdbox.Clear;
end
else messagedlg('删除哪个?',mtinformation,[mbyes],0);
end;
function tuserinfofrm.userisborrowed(u_name:string):boolean;
var
w:ttable;
q:tquery;
u_no:string;
begin
w:=ttable.Create(nil);
w.DatabaseName:=dbname;
w.TableName:='user_info.db';
w.Open;
w.SetKey;
w.FieldByName('姓名').AsString:=u_name;
if w.GotoKey then u_no:=w.fieldbyname('学生证号').AsString;
w.Close;
w.Free;
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from borrow_info where 学生证号=:s_no');
q.ParamByName('s_no').AsString:=u_no;
q.Open;
if q.RecordCount>0 then result:=true else result:=false;
q.Close;
q.Free;
end;

procedure tuserinfofrm.whichcheck;
begin
if r1.Checked then begin
unamebox.Enabled:=false;
unamebox.Color:=clinfobk;
end
else
begin
unamebox.Enabled:=true;
unamebox.Color:=clwindow;
unamebox.Clear;
upwdbox.Clear;
unamebox.SetFocus;
end;
end;


procedure Tuserinfofrm.ListView1Click(Sender: TObject);
//var
//t:ttable;
begin
if listview1.Selected<>nil then
begin
unamebox.Text:=listview1.Selected.Caption;
utypebox.ItemIndex:=strtoint(listview1.Selected.SubItems[0]);
t:=ttable.Create(nil);
t.DatabaseName:=dbname;
t.TableName:='user_info.db';
t.Open;
t.SetKey;
t.FieldByName('姓名').AsString:=unamebox.Text;
if t.GotoKey then upwdbox.Text:=t.fieldbyname('学生证号').AsString;
t.close;
r1.Checked:=true;
whichcheck;
end;
end;


procedure Tuserinfofrm.r1Click(Sender: TObject);
begin
whichcheck;
end;

procedure Tuserinfofrm.r2Click(Sender: TObject);
begin
whichcheck;
end;

procedure Tuserinfofrm.BitBtn2Click(Sender: TObject);
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
if r1.Checked then
begin
if not userinfomodified(unamebox.Text,upwdbox.Text,utypebox.ItemIndex) then exit;
q.SQL.Add('update user_info set 学生证号=:code,等级=:class '+'where 姓名=:uname ');
q.ParamByName('uname').AsString:=unamebox.Text;
q.ParamByName('code').AsString:=upwdbox.Text;
q.ParamByName('class').AsString:=inttostr(utypebox.ItemIndex);
q.ExecSQL;
messagedlg('修改成功!',mtinformation,[mbyes],0);
end;
if r2.Checked then
begin
if trim(unamebox.Text)='' then begin
messagedlg('用户名不能为空!',mtinformation,[mbyes],0);
exit;
end;
if userisexist(unamebox.Text) then begin
messagedlg('此用户名已存在!',mterror,[mbyes],0);
exit;
end;
q.SQL.Add('insert into user_info(姓名,学生证号,等级)'+'values(:uname,:code,:class)');
q.ParamByName('uname').AsString:=unamebox.Text;
q.ParamByName('code').AsString:=upwdbox.Text;
q.ParamByName('class').AsString:=inttostr(utypebox.ItemIndex);
q.ExecSQL;
messagedlg('添加成功!',mtinformation,[mbyes],0);
end;
listuserinfo;
q.Close;
q.Free;
end;

function tuserinfofrm.userisexist(uname:string):boolean;
var tt:ttable;
begin
tt:=ttable.Create(nil);
tt.DatabaseName:=dbname;
tt.TableName:='user_info.db';
tt.Open;
tt.SetKey;
tt.FieldByName('姓名').AsString:=uname;
if tt.GotoKey then result:=true
else result:=false;
tt.Close;
tt.Free;
end;

function tuserinfofrm.userinfomodified(s_name,s_no:string;s_class:integer):boolean;
var
h:ttable;
begin
h:=ttable.Create(nil);
h.DatabaseName:=dbname;
h.TableName:='user_info.db';
h.Open;
h.SetKey;
h.FieldByName('姓名').AsString:=s_name;
if h.GotoKey then begin
result:=false;
if h.FieldByName('学生证号').AsString<>s_no then result:=true
else
if h.FieldByName('等级').AsString<>inttostr(s_class) then result:=true;
end
else result:=false;
h.Close;
h.Free;
end;


end.

⌨️ 快捷键说明

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