【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“lendbookF.pas”一文,供大家参考学习
unit lendbookF;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ImgList, StdCtrls, ExtCtrls, Grids, DB, ADODB,
Mask, DBCtrls;
type
Tlendbook = class(TForm)
ImageList1: TImageList;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
StringGrid1: TStringGrid;
Panel1: TPanel;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Edit5: TEdit;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
ADOQuery2: TADOQuery;
Label6: TLabel;
Label7: TLabel;
ADOCommand1: TADOCommand;
Label1: TLabel;
Label2: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//已借出书的数目,本次借书数目和可借阅时间
booknum,thisbook,keeptime:integer;
//保存读者编号
usernum:string;
procedure cleargrid();
end;
var
lendbook: Tlendbook;
implementation
{$R *.dfm}
uses dataconnect;
procedure Tlendbook.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
//输入读者信息
procedure Tlendbook.Edit1KeyPress(Sender: TObject; var Key: Char);
var
name:string;
num:string;
i:integer;
begin
//确定用哪个字段进行查询
if radiobutton1.Checked then
name:=radiobutton1.Caption;
if radiobutton2.Checked then
name:=radiobutton2.Caption;
//清空借书信息
booknum:=0;
thisbook:=0;
label6.Caption:='已借书'+inttostr(booknum)+'本';
label7.Caption:='本次借书'+inttostr(thisbook)+'本';
if key=#13 then
begin
//显示读者信息
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.*,b.可借册数 from 读者信息 a,读者类型 b where (a.'+name+'='''+edit1.Text+''')and(a.类型=b.类型)');
adoquery1.Open;
//储存读者信息
usernum:=adoquery1.fieldbyname('编号').AsString;
//查阅读者已经借阅的书的信息
num:=adoquery1.FieldByName('编号').AsString;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select a.*,b.书名,b.出版社,b.价格 from 图书借阅 a,图书信息 b where (读者编号='''+num+''')and(a.图书编号=b.图书编号)and(a.状态=''未还'')');
adoquery2.Open;
i:=1;
//将查阅到的已经借出而且未还的书的信息显示在表格中
cleargrid();
while not adoquery2.Eof do
begin
stringgrid1.Cells[0,i]:=adoquery2.fieldbyname('状态').AsString;
stringgrid1.Cells[1,i]:=adoquery2.fieldbyname('图书编号').AsString;
stringgrid1.Cells[2,i]:=adoquery2.fieldbyname('书名').AsString;
stringgrid1.Cells[3,i]:=adoquery2.fieldbyname('借阅时间').AsString;
stringgrid1.Cells[4,i]:=adoquery2.fieldbyname('应还时间').AsString;
stringgrid1.Cells[5,i]:=adoquery2.fieldbyname('出版社').AsString;
stringgrid1.Cells[6,i]:=adoquery2.fieldbyname('价格').AsString;
i:=i+1;
adoquery2.Next;
end;
//显示已借和未借信息
booknum:=i-1;
label6.Caption:='已借书'+inttostr(booknum)+'本';
//当输入的读者信息正确时,允许输入图书信息借书
if dbedit3.Text<>'' then
groupbox2.Enabled:=true
else
groupbox2.Enabled:=false;
//光标跳到借阅图书输入文本框
edit5.SetFocus;
end;
end;
//清除stringgrid中的值
procedure Tlendbook.cleargrid;
var
i,j:integer;
begin
for i:=1 to 11 do
for j:=0 to 6 do
stringgrid1.Cells[j,i]:='';
end;
//读者借书
procedure Tlendbook.Edit5KeyPress(Sender: TObject; var Key: Char);
var
name:string;
booktype:string;
i:integer;
begin
//确定用哪个字段进行
查询 if radiobutton3.Checked then
name:=radiobutton3.Caption;
if radiobutton4.Checked then
name:=radiobutton4.Caption;
//根据输入的图书信息,加入读者新借入的图书信息
if key=#13 then
begin
//如已借出的图书数量达到借书数量限制,则提示已满,不允许再借书
if booknum-strtoint(dbedit3.text)>=0 then
begin
showmessage('读者没有借阅权限或者已达到借书数量上限!');
ex