📄 borrowfrm.pas
字号:
unit borrowfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ButtonFrm, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrls, ComCtrls,childfrm,
Menus;
type
TBorrowForm = class(Tbuttonform)
GroupBox1: TGroupBox;
Splitter1: TSplitter;
GroupBox2: TGroupBox;
Panel1: TPanel;
Label1: TLabel;
Edreaderid: TEdit;
BtBreader: TBitBtn;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Panel2: TPanel;
Label2: TLabel;
Edbookid: TEdit;
BtBbook: TBitBtn;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
LBbook: TListBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
GroupBox7: TGroupBox;
Label12: TLabel;
Edday: TEdit;
DBE1: TDBEdit;
DBE2: TDBEdit;
DBE3: TDBEdit;
DBE4: TDBEdit;
DBE6: TDBEdit;
DBE7: TDBEdit;
DBE8: TDBEdit;
DBE9: TDBEdit;
Label13: TLabel;
DBE5: TDBEdit;
DBE10: TDBEdit;
LBbookid: TListBox;
DTPdate: TDateTimePicker;
Label14: TLabel;
Label22: TLabel;
Label23: TLabel;
procedure FormDestroy(Sender: TObject);
procedure BtBreaderClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EdreaderidKeyPress(Sender: TObject; var Key: Char);
procedure BtBbookClick(Sender: TObject);
procedure EdbookidKeyPress(Sender: TObject; var Key: Char);
procedure LBbookidClick(Sender: TObject);
procedure EddayKeyPress(Sender: TObject; var Key: Char);
procedure BBtnBorrowClick(Sender: TObject);
procedure DTPdateKeyPress(Sender: TObject; var Key: Char);
procedure BBtnCancelClick(Sender: TObject);
procedure EdbookidEnter(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BBtnPrintClick(Sender: TObject);
private
{ Private declarations }
public
procedure clearDBEdit;
procedure clearEdit;
procedure clearDBEdit1_5;
{ Public declarations }
end;
var
BorrowForm: TBorrowForm;
implementation
uses dmfrm, prtborrowfrm;
{$R *.dfm}
var
templistbox:Tlistbox;
tmpborrowlist1:Tstringlist;
procedure TBorrowForm.FormDestroy(Sender: TObject);
begin
inherited;
templistbox.Free;
tmpborrowlist1.Free;
tmpborrowlist1:=nil;
BorrowForm:=nil;
end;
procedure TBorrowForm.clearDBEdit;
begin
{dmbook.Qryreader.DisableControls;
dmbook.Qrybook.DisableControls;}
Edreaderid.Clear;
Edbookid.Clear;
DBE1.Clear;
DBE2.Clear;
DBE3.Clear;
DBE4.Clear;
DBE5.Clear;
DBE6.Clear;
DBE7.Clear;
DBE8.Clear;
DBE9.Clear;
DBE10.Clear;
LBbook.Clear;
LBbookid.Clear;
templistbox.Clear;
end;
procedure TBorrowForm.clearEdit;
begin
DBE6.Clear;
DBE7.Clear;
DBE8.Clear;
DBE9.Clear;
DBE10.Clear;
Edbookid.Clear;
LBbookid.Clear;
templistbox.Clear;
end;
procedure TBorrowForm.clearDBEdit1_5;
begin
DBE6.Clear;
DBE7.Clear;
DBE8.Clear;
DBE9.Clear;
DBE10.Clear;
end;
procedure TBorrowForm.BtBreaderClick(Sender: TObject);
var
i:integer;
tmpstr1:string;
begin
inherited;
clearEdit;
if Edreaderid.Text=Emptystr then
begin
bookInformation('请输入借书证号!');
Edreaderid.SetFocus;
Edreaderid.Clear;
exit;
end;
dmbook.readerfirst;
if not dmbook.Qryreader.Locate('reader_id',Edreaderid.Text,[]) then
begin
clearDBEdit;
bookInformation('输入借书证号在数据库中不存在!');
Edreaderid.SetFocus;
exit;
end;
//dmbook.Qryreader.EnableControls;
LBbook.Items.text:=dmbook.getborrowedbook(Edreaderid.Text);
tmpborrowlist1.Clear;
for i:=0 to LBbook.Items.Count-1 do
begin
tmpstr1:=LBbook.Items.Strings[i];
tmpstr1:=copy(tmpstr1,2,length(tmpstr1));
tmpstr1:=copy(tmpstr1,1,pos(']',tmpstr1)-1);
tmpborrowlist1.Add(tmpstr1);
end;
Edbookid.SetFocus;
end;
procedure TBorrowForm.FormCreate(Sender: TObject);
begin
inherited;
templistbox:=Tlistbox.Create(self);
templistbox.Parent:=self;
templistbox.Visible:=false;
tmpborrowlist1:=tstringlist.Create;
Edday.Text:=inttostr(childfrm.borrowbookday);
end;
procedure TBorrowForm.EdreaderidKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then
begin
if TEdit(Sender)=Edreaderid then BtBreaderClick(Sender);
// if TEdit(Sender)=Edbookid then BtBbook.SetFocus;
end
else begin
if not(key in ['0'..'9',#8]) then
begin
key:=#0;
beep;
end;
end;
end;
procedure TBorrowForm.BtBbookClick(Sender: TObject);
var
booknametemp:string;
indexstring:integer;
begin
inherited;
if lbbook.Count+lbbookid.Count>=borrowbooknum then
begin
bookInformation('对不起!'+#13+'借书不能超过'+inttostr(borrowbooknum)+'本!');
if lbbookid.Count<>0 then
begin
Edbookid.Clear;
Edday.SetFocus;
end
else begin
Edbookid.Clear;
Edreaderid.SetFocus;
end;
exit;
end;
if Edbookid.Text=Emptystr then
begin
bookInformation('请输入待借书号!');
Edbookid.SetFocus;
Edbookid.Clear;
exit;
end;
dmbook.bookfirst;
if not dmbook.Qrybook.Locate('book_id',Edbookid.Text,[]) then
begin
clearDBEdit1_5;
bookInformation('输入待借书号在数据库中不存在!');
Edbookid.SetFocus;
Edbookid.Clear;
if LBbookid.ItemIndex<>-1 then
dmbook.Qrybook.Locate('book_id',LBbookid.Items.Strings[LBbookid.ItemIndex],[])
else clearDBEdit1_5;
exit;
end
else begin
{ DBE6.Clear;
DBE7.Clear;
DBE8.Clear;
DBE9.Clear;
DBE10.Clear;}
// if LBbook.Items.IndexOf('['+dmbook.Qrybook['book_id']+']'+dmbook.Qrybook['book_name'])<>-1 then
if tmpborrowlist1.IndexOf(dmbook.Qrybook['book_id'])<>-1 then
begin
bookInformation('你已经借了这本书,未还'+#13+'不能再借这本书,请续借吧!');
Edbookid.SetFocus;
Edbookid.Clear;
if LBbookid.ItemIndex<>-1 then
dmbook.Qrybook.Locate('book_id',LBbookid.Items.Strings[LBbookid.ItemIndex],[])
else clearDBEdit1_5;
exit;
end;
if dmbook.Qrybook['book_reside']=0 then
begin
bookInformation('该书已全部借出!');
Edbookid.SetFocus;
Edbookid.Clear;
if LBbookid.ItemIndex<>-1 then
dmbook.Qrybook.Locate('book_id',LBbookid.Items.Strings[LBbookid.ItemIndex],[])
else clearDBEdit1_5;
exit;
end;
booknametemp:=dmbook.Qrybook['book_name'];
end;
if LBbookid.Items.IndexOf(Edbookid.Text)<>-1 then
begin
Edbookid.SetFocus;
Edbookid.Clear;
exit;
end;
indexstring:=LBbookid.Items.Add(Edbookid.Text);
LBbookid.ItemIndex:=indexstring;
templistbox.Items.Insert(indexstring,booknametemp);
if childfrm.checkusesdefaultday then Edday.ReadOnly:=true
else Edday.ReadOnly:=false;
Edday.SetFocus;
end;
procedure TBorrowForm.EdbookidKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then BtBbookClick(Sender);
if not(key in ['a'..'z','A'..'Z','0'..'9','-',#8]) then
begin
key:=#0;
beep;
end;
if (key in ['a'..'z']) then key:=chr(ord(key)-32);
end;
procedure TBorrowForm.LBbookidClick(Sender: TObject);
begin
inherited;
if LBbookid.ItemIndex=-1 then exit;
dmbook.bookfirst;
if not dmbook.Qrybook.Locate('BOOK_ID',LBbookid.Items.Strings[LBbookid.ItemIndex],[]) then
begin
bookInformation('输入待借书号在数据库中不存在!');
LBbookid.Items.Delete(LBbookid.ItemIndex);
exit;
end;
dmbook.Qrybook.EnableControls;
end;
procedure TBorrowForm.EddayKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then BBtnBorrow.OnClick(Sender)
else if not(key in ['0'..'9',#8]) then
begin
key:=#0;
beep;
end;
end;
procedure TBorrowForm.BBtnBorrowClick(Sender: TObject);
var
Aborrowid,i,Anumber,Aborrowday:integer;
Areaderid,Abookid,Abookname:string;
Aborrowdate:Tdatetime;
begin
inherited;
if LBbook.Count>4 then
begin
bookInformation('对不起!'+#13+'你已经借了4本书,不能再借了!');
clearDBEdit;
Edreaderid.SetFocus;
exit;
end;
if Edreaderid.Text=Emptystr then
begin
bookInformation('请输入借书证号!');
Edreaderid.SetFocus;
exit;
end;
if LBbookid.Count=0 then
begin
bookInformation('请输入待借书号!');
Edbookid.SetFocus;
exit;
end;
if Edday.Text=Emptystr then
begin
bookInformation('请输入借期!');
Edday.SetFocus;
exit;
end;
dmbook.Dbasebook.StartTransaction;
Areaderid:=Edreaderid.Text;
Anumber:=LBbookid.Count;
try
Aborrowid:=dmbook.insertborrow(Areaderid,Anumber);
Aborrowdate:=DTPdate.DateTime;
Aborrowday:=strtoint(Edday.text);
for i:=0 to LBbookid.Count-1 do
begin
Abookid:=LBbookid.Items.Strings[i];
Abookname:=templistbox.Items.Strings[i];
dmbook.insertborrowitems(Aborrowid,Aborrowday,Abookid,Abookname,Aborrowdate);
dmbook.insertborrowhistory(Areaderid,Abookid,Abookname,Aborrowdate,Aborrowday);
dmbook.bookReside(Abookid,1);
//store item proc
//store history proc
end;
dmbook.Dbasebook.Commit;
except
dmbook.Dbasebook.Rollback;
bookError('借书入库失败!');
end;
clearDbedit;
Edreaderid.SetFocus;
end;
procedure TBorrowForm.DTPdateKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then Edday.SetFocus;
end;
procedure TBorrowForm.BBtnCancelClick(Sender: TObject);
begin
inherited;
clearDBEdit;
end;
procedure TBorrowForm.EdbookidEnter(Sender: TObject);
begin
inherited;
if (DBE2.Text=Emptystr)OR(DBE2.Text<>Edreaderid.Text) then
begin
bookInformation('请先输入借书证号并确认!');
Edreaderid.SetFocus;
exit;
end;
end;
procedure TBorrowForm.FormShow(Sender: TObject);
begin
inherited;
dmbook.closebook;
dmbook.closereader;
dmbook.openbook;
dmbook.openreader;
clearDBEdit;
end;
procedure TBorrowForm.BBtnPrintClick(Sender: TObject);
begin
inherited;
if not assigned(prtborrowForm) then
prtborrowForm:=TprtborrowForm.Create(Application);
try
prtborrowForm.RB3.Enabled:=false;
prtborrowForm.ShowModal;
finally
prtborrowForm.Free;
prtborrowForm:=nil;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -