首页 百科知识 还书业务管理

还书业务管理

时间:2022-10-21 百科知识 版权反馈
【摘要】:还书业务处理流程如下,首先输入图书编号,回车,如果存在该图书借阅记录,则执行还书操作;如果不存在借阅记录,则给出提示信息。还书操作具体流程:首先找到该书借阅记录后,然后点击“保存”按钮,执行还书操作,该图书借阅记录就从“Issue”表删除;同时,找到该书借阅记录后,还要根据系统设置计算该书是否超出最多允许借阅天数,如果超出,则要计算罚款金额。

5.4.9 还书业务管理

还书业务处理流程如下,首先输入图书编号,回车,如果存在该图书借阅记录(“Issue”表中存在该记录),则执行还书操作;如果不存在借阅记录,则给出提示信息。还书操作具体流程:首先找到该书借阅记录后,然后点击“保存”按钮,执行还书操作,该图书借阅记录就从“Issue”表删除;同时,找到该书借阅记录后,还要根据系统设置计算该书是否超出最多允许借阅天数,如果超出,则要计算罚款金额(最多允许借阅天数和超出天数每天罚款金额通过系统“参数设置”菜单实现,具体参见主窗体设置代码和modDatabase模块代码)。

下面给出具体实现的窗体设置和程序代码:

img55

图5-26 还书业务管理子窗体设计

代码5-12 还书业务管理功能代码

′****************************************************************************

′窗体加载

Private Sub Form_Load()

  lblInfo.Left=Me.ScaleLeft

  lblInfo.Top=Me.ScaleTop

  lblInfo.Width=Screen.Width

  txtFineAmt.Visible=False

  lblFineAmt.Visible=False

  Frame2.Left=(Screen.Width-Frame2.Width)/2

  If rsIssueInfo.RecordCount=0Then

    MsgBox″未查到借出记录!″,vbInformation,″借出记录″

    Unload Me

  End If

  cmdSave.Enabled=False

End Sub

′窗体成为活动窗口

Private Sub Form_Activate()

  clear

End Sub

Private Sub cmdBookOpen_Click() ′图书编号旁边扩展按钮

  frmBookInfo.Show

  frmBookInfo.SetFocus

End Sub

Private Sub cmdMemberOpen_Click()′借书证旁扩展按钮

  frmMemberInfo.Show

  frmMemberInfo.SetFocus

End Sub

′“取消”按钮

Private Sub cmdCancel_Click()

  clear

End Sub

′“保存”按钮

Private Sub cmdsave_click()

  If txtLibraryId.Text=″″Then

    cmdSave.Enabled=False

  End If

  rsIssueInfo.Delete ′借阅记录被删除

  txtFineAmt.Visible=False

  lblFineAmt.Visible=False

  Call clear

End Sub

′支持功能函数Clear

Private Sub clear()

  txtIssueDate.Text=″″

  txtBookId.Text=″″

  txtDaysUsed.Text=″″

  txtFineAmt.Text=″″

  txtLibraryId.Text=″″

  txtReturnDate.Text=″″

  txtBookId.SetFocus

End Sub

′输入图书编号后回车

Private Sub Txtbookid_KeyPress(KeyAscii As Integer)

  Dim BookNo As String

  Dim issueDate As Date

  Dim currDate As Date

  Dim totalDaysUsed As Integer

  Dim totalFineAmt As Integer

  BookNo=txtBookId.Text

  If KeyAscii=13Then ′回车键ASCII码值为13

    clear

    If Not IsNumeric(BookNo)Then ′要求图书编号为整数

      MsgBox″无效检索!″,vbCritical,″检索错误!″

      Call clear

      Exit Sub

    End If

    rsIssueInfo.MoveFirst

    For i=0To rsIssueInfo.RecordCount

      If rsIssueInfo.EOF=True Then

      Exit For

    End If

    If rsIssueInfo(0)=Val(Trim$(BookNo))Then

      txtLibraryId.Text=rsIssueInfo(2)

      txtReturnDate.Text=Format(Now,″mm/dd/yy″)

      txtIssueDate.Text=rsIssueInfo(1)

      issueDate=CDate(txtIssueDate.Text) ′借出日期

      currDate=CDate(Format(Now,″mm/dd/yy″)) ′获取系统当前日期

      ′DateDiff是VB函数,计算两个日期值之间间隔的天数

      ′maxDays与fineAmt是系统注册表参数参见modDatabase模块代码

      totalDaysUsed=DateDiff(″d″,issueDate,currDate)

      If totalDaysUsed>maxDays Then ′借阅天数超出最多允许天数

        txtFineAmt.Visible=True

        lblFineAmt.Visible=True

        totalDaysUsed=totalDaysUsed-maxDays ′计算超出允许多少天

        totalFineAmt=fineAmt*totalDaysUsed ′计算罚款额度

        txtDaysUsed.ForeColor=vbRed

        txtFineAmt.ForeColor=vbRed

        txtDaysUsed.Text=″超出最多允许借阅天数″&totalDaysUsed &″天″

        txtFineAmt.Text=″img56″&totalFineAmt

      Else

        txtDaysUsed.ForeColor=vbBlack

        txtFineAmt.Visible=False

        lblFineAmt.Visible=False

        txtDaysUsed.Text=totalDaysUsed

      End If

      Exit For

    End If

    rsIssueInfo.MoveNext

  Next

  If txtLibraryId.Text=″″Then

    MsgBox″未查到记录!″,vbInformation,″检索结果″

    cmdSave.Enabled=False

    clear

  Else

    cmdSave.Enabled=True

  End If

 End If

End Sub

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈