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

📄 reader.pas

📁 一个还不错的Delphi编程源码,是一个图书管理系统,比较简单,通俗易懂
💻 PAS
字号:
unit reader;

interface

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

type
  Treaderform = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    ComboBox1: TComboBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    ListView1: TListView;
    Button4: TButton;
    Button3: TButton;
    Button1: TButton;
    Button2: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  readerform: Treaderform;

implementation

uses data;

{$R *.dfm}

procedure Treaderform.Button3Click(Sender: TObject);
begin
 try
   with datamoduleADO.adoquery1 do
   begin
     sql.clear;
     sql.add('select * from reader order by readerID');
     open;

     listview1.Items.Clear ;
     while not eof do
     begin
      with listview1.Items.Add do
       begin
         caption:=fieldbyname('readerid').asstring;
         subitems.Add(fieldbyname('name').asstring);
         if fieldbyname('sex').asstring='1' then
           subitems.Add('女')
         else
           subitems.Add('男');
         subitems.Add(fieldbyname('idcardno').asstring);
       end;
       next;
     end;
     close;
     end;
    except
     listview1.items.Clear;
     messagedlg('刷新出错',mtError,[mbok],0);
   end;
end;

procedure Treaderform.Button1Click(Sender: TObject);
begin
  close;
end;

procedure Treaderform.Button4Click(Sender: TObject);
var
  i:integer;
  checked:integer;
begin
  for i:=listview1.Items.Count -1 downto 0 do
    if listview1.Items[i].Selected then
    try
      try
        with dataModuleADO.ADOQuery1 do
        begin
          sql.Clear ;
          SQL.Add('select code from lend where readerID=:ReaderID');
          parameters.ParamByName('ReaderID').Value :=listview1.Items[i].Caption ;
          open;
          if recordcount=0 then
            checked:=IDyes
          else  begin
                    if messagedlg('此读者还有图书没有归还,是否删除?',
                      mtconfirmation,[mbYes,mbNo],0)=mrYes then
                      begin
                        sql.Clear ;
                        sql.Add('delete from lend where readerid=:readerid');
                        parameters.ParamByName('readerid').Value :=listview1.Items[i].Caption ;
                        execsql;
                        checked:=IDyes;
                      end
                        else checked:=IDno;
                    end;
          close;

        end;
      except
        checked:=idno;
      end;

      
        if checked=IDyes then
        begin
          with datamoduleADO.ADOQuery1 do
          begin
            sql.Clear ;
            sql.add('delete from reader where readerid=:readerid');
            parameters.ParamByName('readerid').Value :=listview1.Items[i].Caption ;
            execsql;
          end;
          listview1.Items.Delete(i);
        end else
          if checked=IDno then
            exit;
        except
          messagedlg('删除<'+listview1.Items[i].Caption +'>出错',mterror,[mbok],0);

        end;
 end;
 
procedure Treaderform.RadioButton1Click(Sender: TObject);
begin
  edit1.Text :='';
  edit2.Text :='';
  edit3.Text :='';
  combobox1.ItemIndex :=0;
end;

procedure Treaderform.Button2Click(Sender: TObject);
begin
  if radiobutton1.Checked then
  begin
    if length(edit1.Text )<>10 then
    begin
      messagedlg('读者借书证号不正确',mtError,[mbok],0);
      exit;
    end;

    with dataModuleADO.ADOQuery1 do
    begin
      sql.Clear ;
      sql.Add('select readerid from reader where readerid=:readerid');
      parameters.ParamByName('readerid').Value :=edit1.Text ;
      open;
      if recordcount <>0 then
      begin
        messagedlg('借书证号<'+edit1.Text +'>已经存在',mterror,[mbok],0);
        exit;
      end;
      close;
    end;

    try
      with datamoduleADO.ADOQuery1 do
      begin
        sql.Clear ;
        sql.Add('insert into reader(readerid,name,sex,idcardno)'+
             'values(:readerid,:readername,:sex,:idcardno)');
        parameters.ParamByName('readerid').Value :=edit1.Text ;
        parameters.ParamByName('readername').Value :=edit2.Text ;
        parameters.ParamByName('sex').Value :=inttostr(combobox1.ItemIndex) ;
        parameters.ParamByName('idcardno').Value :=edit3.Text ;
        execsql;
      end;
    except
      messagedlg('添加<'+edit1.Text +'>失败',mterror,[mbok],0);
      exit;
    end;
  end;

  if radiobutton2.Checked then
  begin
    if length(edit1.Text )<>10 then
    begin
      messagedlg('读者借书证号不正确',mterror,[mbok],0);
      exit;
    end;
    try
      with datamoduleado.ADOQuery1 do
      begin
       sql.Clear ;
       sql.add('update reader set name=:readername,sex=:sex,idcardno=:idno '
       +'where readerid='''+edit1.text+'''');
     //   parameters.ParamByName('readerid').Value :=edit1.Text ;
       parameters.ParamByName('readername').Value :=edit2.Text ;
       parameters.ParamByName('sex').Value :=inttostr(combobox1.ItemIndex) ;
       parameters.ParamByName('idno').Value :=edit3.Text ;

       execsql;
    end;
  except
    messagedlg('修改<'+edit1.Text +'>失败',mterror,[mbok],0);
    exit;
  end;
end;

    edit1.Text :='';
    edit2.Text :='';
    edit3.Text :='';
    combobox1.ItemIndex :=0;
end;

procedure TreaderForm.ListView1Click(Sender: TObject);
var
 i:integer;
begin
  for i:=0 to listview1.Items.Count -1 do
    if listview1.Items[i].Selected then
    begin
      radiobutton2.Checked :=true;
      edit1.Text :=listview1.Items[i].Caption ;
      edit2.Text :=listview1.Items[i].SubItems.Strings[0];
      if listview1.Items[i].SubItems[1]='男' then
        combobox1.ItemIndex :=0
      else
        combobox1.ItemIndex :=1;
      edit3.Text :=listview1.Items[i].subitems.Strings[2];
    end;

end;


end.


//此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
//╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
//╭⌒╭⌒╮╭⌒╮~╭⌒╮  ︶  ,︶︶
//,︶︶︶︶,''︶~~ ,''~︶︶  ,''
//╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
//╬ ︱田︱田 田 ︱          ╬
//╬       http://www.5ivb.net ╬
//╬  ╭○╮●                     ╬
//╬  /■\/■\                    ╬
//╬   <| ||    有希望,就有成功! ╬
//╬                 ╬
//╚╬╬╬╬╬╬╬╬╬╬╗  ╔╬╬╬╬╝
//
//说明:
//专业提供VB、.NET、Delphi、ASP、PB源码下载
//包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档

⌨️ 快捷键说明

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