📄 reader.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 + -