?? borrowbook.~pas
字號:
unit borrowbook;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, jpeg, ExtCtrls, DB, DBTables;
type
Tborrowbookfrm = class(TForm)
Panel1: TPanel;
Image1: TImage;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
ListView1: TListView;
GroupBox2: TGroupBox;
r1: TRadioButton;
r2: TRadioButton;
Label1: TLabel;
e1: TEdit;
b1: TBitBtn;
GroupBox3: TGroupBox;
ListView2: TListView;
BitBtn1: TBitBtn;
q1: TQuery;
b2: TBitBtn;
b4: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure b1Click(Sender: TObject);
procedure b2Click(Sender: TObject);
procedure b4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure listbooks;
procedure borrowcheck(var l:TListView);
procedure borrow (var bno:string);
procedure toview(var q:Tquery; list:TListView; flg:integer);
public
{ Public declarations }
end;
var
borrowbookfrm: Tborrowbookfrm;
implementation
uses gl,main1,extimebook;
{$R *.dfm}
procedure Tborrowbookfrm.listbooks;
begin
q1.Close;
q1.sql.Clear;
q1.sql.add('select * from book_info order by 借閱次數 desc');
q1.Open;
toview(q1,listview1,1);
q1.close;
end;
procedure Tborrowbookfrm.toview(var q:Tquery; list:Tlistview;flg:integer);
begin
q.First;
while not q.Eof do
begin
with list.Items.Add do
begin
caption:=q.fieldbyname('圖書編號').AsString;
SubItems.add(q.FieldByName('書名').AsString);
SubItems.Add(q.FieldByName('作者').AsString);
SubItems.Add(q.FieldByName('出版社').AsString);
if flg=1 then
SubItems.Add(q.FieldByName('借閱次數').AsString)
else
SubItems.Add(q.FieldByName('類別').AsString);
if gf.isborrowed(caption) then SubItems.Add('是') else SubItems.Add('否');
end;
q.next;
end;
end;
procedure Tborrowbookfrm.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure Tborrowbookfrm.TabSheet1Show(Sender: TObject);
begin
listview1.Items.Clear;
listbooks;
end;
procedure Tborrowbookfrm.b1Click(Sender: TObject);
begin
q1.Close;
q1.SQL.Clear;
if e1.text='' then
q1.SQL.Add('select * from book_info ')
else
begin
if r1.Checked then
begin
q1.SQL.Add('select * from book_info where 圖書編號 like :no ');
q1.ParamByName('no').AsString:='%'+e1.Text+'%';
end;
if r2.Checked then
begin
q1.SQL.Add('select * from book_info where 書名 like :name ');
q1.ParamByName('name').AsString:='%'+e1.Text+'%';
end;
end;
q1.Open;
listview2.Items.Clear;
toview (q1,listview2,0);
q1.Close;
end;
procedure Tborrowbookfrm.borrowcheck(var l:TListView);
var ch:integer;
bno,bout:string;
begin
if l.Items.Count=0 then exit;
if l.selected=nil then
begin
showmessage('你要借閱那本書?');
//exit;
end
else
begin
bno:=l.Selected.Caption;
bout:=l.Selected.SubItems[4];
if bout='是' then
begin
messagedlg('這本書已全部借出',mtinformation,[mbyes],0);
exit;
end;
if exbook_num=0 then
if main.Query1.RecordCount<p_books then
begin
if messagedlg('確認要借出這本書嗎?',mtinformation,[mbyes,mbno],0)=mrno then exit;
borrow(bno);
end
else
begin
messagedlg('你借的圖書已滿!',mtinformation,[mbyes],0);
exit;
end;
if exbook_num>0 then
begin
ch:=messagedlg('您現在有'+inttostr(exbook_num)+'本書超時,如果你想繼續借書請先還書!'+chr(13)+chr(13)+chr(10)+'現在就還書嗎?',mtinformation,[mbyes,mbno],0);
if ch=mrno then exit
else extimebookfrm.ShowModal;
if exbook_num=0 then
begin
if messagedlg('確認要借出這本書嗎?',mtinformation,[mbyes,mbno],0)=mrno then exit;
borrow(bno);
end
else
begin
messagedlg('你還有欠書!',mtinformation,[mbyes],0);
exit;
end;
end;
messagedlg('借書成功!',mtinformation,[mbyes],0);
l.Selected.SubItems[4]:='是';
end;
end;
procedure Tborrowbookfrm.borrow (var bno:string);
begin
q1.SQL.Clear;
q1.SQL.Add('insert into borrow_info (圖書編號,圖書卡號,借出時間)'+ 'values(:bno,:cno,:dat)');
q1.ParamByName('bno').AsString:=bno;
q1.ParamByName('cno').AsString:=userno;
q1.ParamByName('dat').AsDatetime:=date;
q1.ExecSQL;
q1.close;
q1.SQl.Clear;
q1.SQL.Add('update book_info set 借閱次數=借閱次數+1'+' where 圖書編號=:b');
q1.ParamByName('b').AsString:=bno;
q1.ExecSQL;
q1.Close;
main.listbookinfo;
end;
procedure Tborrowbookfrm.b2Click(Sender: TObject);
begin
borrowcheck(listview1);
end;
procedure Tborrowbookfrm.b4Click(Sender: TObject);
begin
// if ti=1 then
//begin
//hot:=userno;
//ti:=2 ;
// end;
//tipfrm.ShowModal;
//if userno=hot then messagedlg('請選擇用戶!',mtinformation,[mbyes],0)
// else
// begin
borrowcheck(listview2);
end;
procedure Tborrowbookfrm.Button1Click(Sender: TObject);
begin
if listview1.selected=nil then
begin
messagedlg('你要借閱那本書?',mtinformation,[mbyes],0);
exit;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -