📄 lendbook.~pas
字号:
Exit;
end;
self.Close;
frmLendList.PF_GetData;
end;
end;
//*****************************************************************************
// 函 数 名: PF_GetMaxNo
// 功能描述: 获得最大的借书编号
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_GetMaxNo: string;
begin
Result:='1';
with grySelect do
begin
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add('SELECT MAX(BR_BORROWNO) MAXNO FROM BORROWINFO');
TRY
open;
if Not EOF then begin
Result:=FloatTostr(Fieldbyname('MAXNO').AsFloat+1); //书籍编号
end
else begin
Result:='1';
end;
Close;
except
on E:exception do
begin
Result:='1';
Close;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
end;
//*****************************************************************************
// 函 数 名: PF_GetBookInfo
// 功能描述: 获得书籍的信息
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_GetBookInfo: Boolean;
VAR strSql : String;
begin
Result:=True;
with Db_Connect.Library_Query do
begin
strSql:='';
strSql:=strSql + 'SELECT BOOK_NO '; //书籍编号
strSql:=strSql + ',BOOK_NAME '; //书籍名称
strSql:=strSql + ',BOOK_TYPE '; //书籍类别
strSql:=strSql + ',BOOK_AUTHOR '; //书籍作者
strSql:=strSql + ',BOOK_PUB '; //出版社名称
strSql:=strSql + ',BOOK_MEMO '; //书籍备注
strSql:=strSql + ' FROM BOOKS WHERE BOOK_NO='+edtBookNo.Text+'';
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
open;
if Not EOF then begin
edtBookNo.Text:=Fieldbyname('BOOK_NO').AsString; //书籍编号
edtBookName.Text:=Fieldbyname('BOOK_NAME').AsString; //书籍名称
edtBookKind.Text:=Fieldbyname('BOOK_TYPE').AsString; //书籍类别
edtWriter.Text:=Fieldbyname('BOOK_AUTHOR').AsString; //书籍作者
edtPublish.Text:=Fieldbyname('BOOK_PUB').AsString; //出版社名称
memBook.Text:=Fieldbyname('BOOK_MEMO').AsString; //书籍备注
end
else begin
edtBookName.Text:=''; //书籍名称
edtBookKind.Text:=''; //书籍类别
edtWriter.Text:=''; //书籍作者
edtPublish.Text:=''; //出版社名称
memBook.Text:=''; //书籍备注
Result:=False;
end;
Close;
except
on E:exception do
begin
Result:=False;
Close;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
end;
//*****************************************************************************
// 函 数 名: edtBookNoExit
// 功能描述: 获得书籍的信息
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.edtBookNoExit(Sender: TObject);
begin
if edtBookNo.Text<>'' then begin
//获得书籍的信息
if PF_GetBookInfo=False then begin
Exit;
end;
end
else begin
edtBookName.Text:=''; //书籍名称
edtBookKind.Text:=''; //书籍类别
edtWriter.Text:=''; //书籍作者
edtPublish.Text:=''; //出版社名称
memBook.Text:=''; //书籍备注
end;
end;
//*****************************************************************************
// 函 数 名: PF_GetReaderInfo
// 功能描述: 获得读者信息
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_GetReaderInfo: Boolean;
VAR strSql : String;
begin
Result:=True;
with Db_Connect.Library_Query do
begin
strSql:='';
strSql:=strSql + ' SELECT A.READER_NO '; //读者编号
strSql:=strSql + ',A.READER_NAME '; //读者姓名
strSql:=strSql + ',A.READER_TYPE '; //读者种类
strSql:=strSql + ',B.RT_booknumber '; //借书数量
strSql:=strSql + ' FROM READERS A LEFT OUTER JOIN READERTYPE B ON (A.READER_TYPE=B.RT_TYPENO)';
strSql:=strSql + ' WHERE A.READER_NO='+edtReadNo.Text+'';
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
open;
if Not EOF then begin
edtReadNo.Text:=Fieldbyname('READER_NO').AsString; //读者编号
edtReader.Text:=Fieldbyname('READER_NAME').AsString; //读者姓名
edtReadKind.Text:=Fieldbyname('READER_TYPE').AsString; //读者种类
edtBooknum.Text :=Fieldbyname('RT_booknumber').AsString; //借书数量
end
else begin
edtReader.Text:=''; //读者姓名
edtReadKind.Text:=''; //读者种类
edtBooknum.Text:=''; //借书数量
Result:=False;
end;
Close;
except
on E:exception do
begin
Result:=False;
Close;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
end;
//*****************************************************************************
// 函 数 名: PF_GetReaderInfo
// 功能描述: 获得读者信息
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.edtReadNoExit(Sender: TObject);
begin
if edtReadNo.Text<>'' then begin
//获得读者信息
if PF_GetReaderInfo=False then begin
Exit;
end;
end
else begin
edtReader.Text:=''; //读者姓名
edtReadKind.Text:=''; //读者种类
end;
end;
//*****************************************************************************
// 函 数 名: PF_Check
// 功能描述: 必须输入的项目
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_Check: Boolean;
begin
Result:=False;
if Trim(edtBookNo.Text)='' then begin
MessageDlg(' 请输入书籍编号! ',mtError,[mbOk],0);
edtBookNo.SetFocus;
Exit;
end;
if Trim(edtReadNo.Text)='' then begin
MessageDlg(' 请输入读者编号! ',mtError,[mbOk],0);
edtReadNo.SetFocus;
Exit;
end;
if PF_GetBookInfo=False then begin
MessageDlg('输入书籍编号不存在,请重新输入!',mtError,[mbOk],0);
edtBookNo.SetFocus;
Exit;
end;
if PF_GetReaderInfo=False then begin
MessageDlg('输入读者编号不存在,请重新输入!',mtError,[mbOk],0);
edtReadNo.SetFocus;
Exit;
end;
if PF_GetBorrowNum(Trim(edtReadNo.Text))=Trim(edtBooknum.Text) then begin
MessageDlg('借书的数量已经达到极限,不能在借!',mtError,[mbOk],0);
edtBookNo.SetFocus;
Exit;
end;
Result := True;
end;
//*****************************************************************************
// 函 数 名: PF_Check
// 功能描述: 画面项目全部清空
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.PF_Clear;
begin
edtBookNo.Text:=''; //书籍编号
edtBookName.Text:=''; //书籍名称
edtBookKind.Text:=''; //书籍类别
edtWriter.Text:=''; //书籍作者
edtPublish.Text:=''; //出版社名称
memBook.Text:=''; //书籍备注
edtReadNo.Text:=''; //读者编号
edtReader.Text:=''; //读者姓名
edtReadKind.Text:=''; //读者种类
meoReader.Text:=''; //备注信息
end;
//*****************************************************************************
// 函 数 名: FormDestroy
// 功能描述: 画面关闭
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.FormDestroy(Sender: TObject);
begin
if self.Caption ='修改借书信息' then begin
frmLendList.Enabled:=True;
frmLendList.PF_GetData;
end
else begin
frmMain.N28.Enabled :=True;
end;
end;
//*****************************************************************************
// 函 数 名: edtBookNoKeyPress
// 功能描述: 限制只能输入数字
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.edtBookNoKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then
Key:=#0;
end;
//*****************************************************************************
// 函 数 名: PF_GetData
// 功能描述: 获得数据
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_GetBorrowNum(strNo:string): string;
VAR strSql : String;
begin
Result:='';
with Db_Connect.Library_Query do
begin
strSql:='';
strSql:=strSql + ' ';
strSql:=strSql + ' SELECT COUNT(BR_borrowno) COUNT1 '; //读者编号
strSql:=strSql + ' FROM BORROWINFO ';
strSql:=strSql + ' WHERE BR_readerno='+strNo+'';
strSql:=strSql + ' AND BR_returndate IS NULL'; //还书日期
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
open;
if Not EOF then begin
Result:=Fieldbyname('COUNT1').AsString; //书籍编号
end;
Close;
except
on E:exception do
begin
Result:='';
Close;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -