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

📄 lendbook.~pas

📁 图书馆管理系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -