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

📄 lendbook.~pas

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