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

📄 userinfo.~pas

📁 蛮不错的图书管理系统,大家可以载着试试看啊
💻 ~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 + -