📄 lendbook.~pas
字号:
unit LendBook;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ExtCtrls, DB, DBTables;
type
TfrmLendBook = class(Tform)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
btnSave: TButton;
btnClose: TButton;
meoReader: TMemo;
edtBorrowNo: TEdit;
edtReadNo: TEdit;
Label11: TLabel;
edtBookNo: TEdit;
Panel1: TPanel;
memBook: TMemo;
edtPublish: TEdit;
edtWriter: TEdit;
edtBookKind: TEdit;
edtBookName: TEdit;
Panel2: TPanel;
edtReadKind: TEdit;
edtReader: TEdit;
grySelect: TQuery;
mskDate: TMaskEdit;
edtBooknum: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnCloseClick(Sender: TObject);
procedure cmbBookNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure edtBookNoExit(Sender: TObject);
procedure edtReadNoExit(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure edtBookNoKeyPress(Sender: TObject; var Key: Char);
private
function PF_GetData(strNo:string): Boolean;
Function PF_InsertData:Boolean;
function PF_GetMaxNo: string;
function PF_GetBookInfo: Boolean;
function PF_GetReaderInfo: Boolean;
function PF_Check: Boolean;
procedure PF_Clear;
function PF_UpdateData: Boolean;
function PF_GetBorrowNum(strNo: string): string;
{ Private declarations }
public
{ Public declarations }
procedure PF_FormShow(strForm,strNo:string);
end;
var
frmLendBook: TfrmLendBook;
frmLendBookM: TfrmLendBook;
implementation
uses Db_Con,COMMON,LendList, Main;
{$R *.dfm}
//*****************************************************************************
// 函 数 名: FormClose
// 功能描述: 关闭画面
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.FormClose(Sender: TObject;var Action: TCloseAction);
begin
Action:=caFree;
end;
//*****************************************************************************
// 函 数 名: btnCloseClick
// 功能描述: 返回
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.btnCloseClick(Sender: TObject);
begin
Close;
end;
//*****************************************************************************
// 函 数 名: cmbBookNameKeyDown
// 功能描述: 回车键相当TAB键
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.cmbBookNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
begin
key := 0;
SelectNext(ActiveControl,True,True);
end;
end;
//*****************************************************************************
// 函 数 名: PF_GetData
// 功能描述: 获得数据
// 参 数: 无
// 返 回 值: 无
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_GetData(strNo:string): Boolean;
VAR strSql : String;
begin
Result:=True;
with Db_Connect.Library_Query do
begin
strSql:='';
strSql:=strSql + ' SELECT ';
strSql:=strSql + ' A.BR_READERNO '; //读者编号
strSql:=strSql + ',A.BR_READERNAME '; //读者姓名
strSql:=strSql + ',A.BR_BOOKNO '; //书籍编号
strSql:=strSql + ',A.BR_BOOKNAME '; //书籍名称
strSql:=strSql + ',A.BR_BORROWDATE '; //出借日期
strSql:=strSql + ',A.BR_RETURNDATE '; //还书日期
strSql:=strSql + ',A.BR_BORROWMEMO '; //备注信息
strSql:=strSql + ',B.BOOK_TYPE '; //书籍类别
strSql:=strSql + ',B.BOOK_AUTHOR '; //书籍作者
strSql:=strSql + ',B.BOOK_PUB '; //出版社名称
strSql:=strSql + ',B.BOOK_MEMO '; //书籍备注
strSql:=strSql + ',C.READER_TYPE '; //读者种类
strSql:=strSql + ' FROM BORROWINFO A LEFT OUTER JOIN BOOKS B ON (A.BR_BOOKNO=B.BOOK_NO)';
strSql:=strSql + ' LEFT OUTER JOIN READERS C ON (A.BR_READERNO=C.READER_NO) ';
strSql:=strSql + ' WHERE A.BR_BORROWNO='+strNo+'';
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
open;
if Not EOF then begin
edtBookNo.Text:=Fieldbyname('BR_BOOKNO').AsString; //书籍编号
edtBookName.Text:=Fieldbyname('BR_BOOKNAME').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; //书籍备注
edtReadNo.Text:=Fieldbyname('BR_READERNO').AsString; //读者编号
edtReader.Text:=Fieldbyname('BR_READERNAME').AsString; //读者姓名
edtReadKind.Text:=Fieldbyname('READER_TYPE').AsString; //读者种类
mskDate.Text:=Fieldbyname('BR_BORROWDATE').AsString; //出借日期
meoReader.Text:=Fieldbyname('BR_BORROWMEMO').AsString; //备注信息
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;
//*****************************************************************************
// 函 数 名: FormCreate
// 功能描述: 初始化
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.FormCreate(Sender: TObject);
begin
self.Caption :='添加借书信息';
//借书日期
mskDate.Text:=FormatDateTime('YYYY-MM-DD',Now);
end;
//*****************************************************************************
// 函 数 名: FormCreate
// 功能描述: 初始化
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.PF_FormShow(strForm,strNo:string);
begin
self.Caption :=strForm;
edtBorrowNo.Text :=strNo;
if PF_GetData(strNo)=False then begin
Exit;
end;
end;
//*****************************************************************************
// 函 数 名: PF_InsertData
// 功能描述: 保存数据
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_InsertData:Boolean;
var strSql : string;
strNo : string;
begin
Result:=False;
strNo:=PF_GetMaxNo;
with Db_Connect.Library_Query do begin
strSql:='';
strSql:=strSql + ' INSERT INTO ';
strSql:=strSql + ' BORROWINFO ( '; //借阅信息表
strSql:=strSql + ' BR_BORROWNO '; //借阅编号(主键)
strSql:=strSql + ',BR_READERNO '; //读者编号
strSql:=strSql + ',BR_READERNAME '; //读者姓名
strSql:=strSql + ',BR_BOOKNO '; //书籍编号
strSql:=strSql + ',BR_BOOKNAME '; //书籍名称
strSql:=strSql + ',BR_BORROWDATE '; //出借日期
strSql:=strSql + ',BR_BORROWMEMO) '; //备注信息
strSql:=strSql + ' VALUES (';
strSql:=strSql + ' '+strNo+''; //借阅编号(主键)
strSql:=strSql + ','''+Trim(edtReadNo.Text)+''''; //读者编号
strSql:=strSql + ','''+Trim(edtReader.Text)+''''; //读者姓名
strSql:=strSql + ','''+Trim(edtBookNo.Text)+''''; //书籍编号
strSql:=strSql + ','''+Trim(edtBookName.Text)+''''; //书籍名称
strSql:=strSql + ','''+Trim(mskDate.Text)+''''; //出借日期
strSql:=strSql + ','''+Trim(meoReader.Text)+''')'; //备注信息
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
//SQL
ExecSQL;
MessageDlg('借阅编号'+strNo+'的借书信息保存成功!',mtInformation,[mbOk],0);
except
on E:exception do
begin
Close;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
Db_Connect.Library_Query.Close;
Result:=True;
end;
//*****************************************************************************
// 函 数 名: PF_UpdateData
// 功能描述: 保存数据
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
Function TfrmLendBook.PF_UpdateData:Boolean;
var strSql : string;
begin
Result:=True;
with Db_Connect.Library_Query do begin
strSql:='';
strSql:=strSql + ' UPDATE BORROWINFO SET';
strSql:=strSql + ' BR_READERNO ='''+Trim(edtReadNo.Text)+''''; //读者编号
strSql:=strSql + ',BR_READERNAME ='''+Trim(edtReader.Text)+''''; //读者姓名
strSql:=strSql + ',BR_BOOKNO ='''+Trim(edtBookNo.Text)+''''; //书籍编号
strSql:=strSql + ',BR_BOOKNAME ='''+Trim(edtBookName.Text)+''''; //书籍名称
strSql:=strSql + ',BR_BORROWDATE ='''+Trim(mskDate.Text)+''''; //出借日期
strSql:=strSql + ',BR_BORROWMEMO='''+Trim(meoReader.Text)+''''; //备注信息
strSql:=strSql + ' WHERE BR_BORROWNO='+edtBorrowNo.Text+'';
DatabaseName:=gDbName;
Close;
SQL.Clear;
SQL.Add(strSql);
TRY
//SQL
ExecSQL;
MessageDlg(' 借书信息保存成功! ',mtInformation,[mbOk],0);
except
on E:exception do
begin
Close;
Result:=False;
Application.MessageBox(PChar(E.Message),'图书管理信息系统',MB_OK + MB_ICONERROR);
exit;
end;
end;
end;
Db_Connect.Library_Query.Close;
end;
//*****************************************************************************
// 函 数 名: btnSaveClick
// 功能描述: 保存数据
// 参 数: 无
// 返 回 值: Boolean
// 作成日期: 2004/03/13 作成者:Allan
// 修改日期:
//*****************************************************************************
procedure TfrmLendBook.btnSaveClick(Sender: TObject);
begin
if self.Caption ='添加借书信息' then begin
if PF_Check=False then begin
Exit;
end;
//保存数据
if PF_InsertData=False then begin
Exit;
end;
PF_Clear;
end
else begin
if PF_Check=False then begin
Exit;
end;
//保存数据
if PF_UpdateData=False then begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -