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

📄 borrowbooks.pas

📁 好多上载非界面和非WEB源码
💻 PAS
字号:
unit borrowbooks;

interface

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

type
  Tborrowfrm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Panel1: TPanel;
    ListView1: TListView;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel2: TPanel;
    ListView2: TListView;
    BitBtn3: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Panel3: TPanel;
    Panel4: TPanel;
    r1: TRadioButton;
    r2: TRadioButton;
    Label3: TLabel;
    valuebox: TEdit;
    BitBtn4: TBitBtn;
    ListView3: TListView;
    Label4: TLabel;
    BitBtn5: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure TabSheet2Show(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

   private
  procedure addbookinfo(var q:tquery;var v:tlistview;flg:integer);
  procedure listnewbooks;
  procedure listtopbooks;
  procedure borrowproc(var v:tlistview);
  procedure borrowbook(b_no:string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  borrowfrm: Tborrowfrm;

implementation
uses global,mainfrm,exbookinfounit;
{$R *.dfm}

procedure tborrowfrm.listnewbooks;
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from book_info '+'where 入库时间>=:mintime and 入库时间<=:maxtime ');
q.ParamByName('mintime').AsDate:=date-p_betdays;
q.ParamByName('maxtime').AsDate:=date;
q.Open;
addbookinfo(q,listview1,0);
label1.Caption:='共'+inttostr(listview1.Items.Count)+'本';
q.Close;
q.Free;
end;

procedure tborrowfrm.listtopbooks;
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from book_info order by 借阅次数 DESC ');
q.Open;
addbookinfo(q,listview2,1);
label2.Caption:='共'+inttostr(listview2.Items.Count)+'本';
q.Close;
q.Free;
end;



procedure tborrowfrm.addbookinfo(var q:tquery;var v:tlistview;flg:integer);
begin
q.First;
while not q.Eof do
begin
with v.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 isborrowed(caption) then subitems.Add('是') else subitems.Add('否');
end;
q.Next;
end;
end;

procedure Tborrowfrm.FormShow(Sender: TObject);
begin
listnewbooks;
end;

procedure Tborrowfrm.TabSheet2Show(Sender: TObject);
begin
listview2.Items.Clear;
listtopbooks;
end;

procedure Tborrowfrm.BitBtn4Click(Sender: TObject);
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
if valuebox.Text='' then
q.SQL.Add('select * from book_info ')
else
begin
if r1.Checked then
begin
q.SQL.Add('select * from book_info where 图书编号=:b_no ');
q.ParamByName('b_no').AsString:=valuebox.Text;
end;
if r2.Checked then
begin
q.SQL.Add('select * from book_info where 书名=:b_name ');
q.ParamByName('b_name').AsString:=valuebox.Text;
end;
end;
q.Open;
listview3.Items.Clear;
addbookinfo(q,listview3,0);
label4.Caption:='共'+inttostr(listview3.Items.Count)+'本';
q.Close;
q.Free;
end;



procedure Tborrowfrm.BitBtn1Click(Sender: TObject);
begin
borrowproc(listview1);
end;

procedure Tborrowfrm.BitBtn3Click(Sender: TObject);
begin
borrowproc(listview2);
end;

procedure Tborrowfrm.BitBtn5Click(Sender: TObject);
begin
borrowproc(listview3);
end;


procedure tborrowfrm.borrowproc(var v:tlistview);
var
ch:integer;
book_no,b_out:string;
begin
if v.Items.Count=0 then exit;
if v.Selected=nil then
begin
messagedlg('你要借阅哪本图书?',mtinformation,[mbyes],0);
exit;
end;
book_no:=v.Selected.Caption;
b_out:=v.Selected.SubItems[4];
if b_out='是' then
begin
messagedlg('这本图书已经借出!',mtinformation,[mbyes],0);
exit;
end;
if exbook_num=0 then
if mainform.query1.RecordCount<p_books then
begin
if messagedlg('确认借这本图书吗?',mtinformation,[mbyes,mbno],0)=mrno then exit;
borrowbook(book_no);
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;
borrowbook(book_no);
end
else
begin
messagedlg('您还不能借阅这本图书,请先还书!',mtinformation,[mbyes],0);
exit;
end;
end;
messagedlg('成功借阅!',mtinformation,[mbyes],0);
v.Selected.SubItems[4]:='是';
Mainform.Query1.Close;
Mainform.Query1.Open;
end;


procedure tborrowfrm.borrowbook(b_no:string);
var q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('insert into borrow_info (图书编号,学生证号,借出时间) '+'values(:book_no,:stud_no,:borrow_date) ');
q.ParamByName('book_no').AsString:=b_no;
q.ParamByName('stud_no').AsString:=userpwd;
q.ParamByName('borrow_date').AsDate:=date;
q.ExecSQL;
q.Close;
q.SQL.Clear;
q.SQL.Add('update book_info set 借阅次数=借阅次数+1 '+'where 图书编号=:book_no ');
q.ParamByName('book_no').AsString:=b_no;
q.ExecSQL;
q.Close;
q.Free;
Mainform.Query1.Close;
Mainform.Query1.Open;
end;

procedure Tborrowfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
listview1.Items.Clear;
end;

end.

⌨️ 快捷键说明

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