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

📄 frmlostbook.frm

📁 图书简明管理系统源代码(VB),可作为软件工程课程设计用,也可以作为学习用。
💻 FRM
📖 第 1 页 / 共 3 页
字号:
     DTP罚款日期(0).Enabled = True
     DTP罚款日期(1).Enabled = True
Else
     DTP罚款日期(0).Enabled = False
     DTP罚款日期(1).Enabled = False
End If
End Sub

Private Sub chk图书编号_Click()
If chk图书编号.Value Then
     txt图书编号(0).Enabled = True
Else
     txt图书编号(0).Enabled = False
End If
End Sub

Private Sub cmb罚款原因_Click()
 Dim i As Integer
 Dim rowNum As Integer
 Dim reason As String
 
 If cmb罚款原因.ListIndex = 0 Then
       reason = "过期罚款"
 Else
       reason = "图书损失"
 End If
 
 If cmb罚款原因.ListIndex = 2 Then '显示全部罚款信息
    Call fineAllBook
    Exit Sub
 End If
 
'在fineGrid表格中只显示reason的数据
 With fineGrid
       If (.Rows >= 2) Then
          rowNum = .Rows
          i = 1
          Do While i < rowNum
                If Trim(.TextMatrix(i, 9)) <> reason Then
                   If .Rows = 2 Then
                      .Rows = 1
                      Exit Sub
                   Else
                      .RemoveItem i
                      .Refresh
                      i = i - 1
                   End If
                End If
           
               i = i + 1
               rowNum = .Rows
          Loop
       End If
      End With
End Sub

Private Sub cmdborrowed_Click()
frmreaderlostbook_choose.Show 1
End Sub

Private Sub cmdexec_Click()
    Dim rs As New ADODB.Recordset
    Dim sql, sql2, sql3 As String
    
    sql = "select * from fkxxb where 读者编号 = '" & Trim(txt读者编号(1).Text) & "' and 图书编号 = '" & _
            Trim(txt图书编号(1).Text) & "' and  DateDiff( 'd','" & DTP罚款日期(2).Value & "',罚款日期) =0 "
  
  
    If txt读者编号(1).Text = "" Then
            MsgBox "请选择要罚款的读者和对应的书的信息!", vbOKOnly + vbInformation, "信息"
    ElseIf Val(txt损失数量.Text) <= 0 Then
            MsgBox "请填写损失数量的值", vbOKOnly + vbInformation, "信息"
    Else
        Set rs = TransactSQL(sql)
        If rs.EOF Then
             sql = "insert into fkxxb values('" & Trim(txt图书编号(1).Text) & "','" & Trim(txt图书名称.Text) & _
                       "','" & Trim(txt读者编号(1).Text) & "','" & Trim(txt读者姓名.Text) & "'," & Format(Val(txt图书价格.Text), "0.00") & _
                       "," & Val(txt损失数量.Text) & "," & Format(Val(txt应罚金额.Text), "0.00") & "," & _
                       Format(Val(txt实收金额.Text), "0.00") & ",'" & DTP罚款日期(2).Value & "','图书损失','" & user & "')"
       
                 TransactSQL (sql) '向fkxxb罚款信息表插入一条记录
        Else
                rs.Fields(5) = rs.Fields(5) + Val(txt损失数量.Text)
                rs.Fields(8) = DTP罚款日期(2).Value
                rs.Fields(10) = user
                rs.Update
        End If
        
        '先对书进行归还工作
        sql = "update tsxxb set 借阅数量 = 借阅数量 - " & Val(txt损失数量.Text) & " where 读者编号 = '" & Trim(txt读者编号(1).Text) & "'And 图书编号 = '" & Trim(txt图书编号(1).Text) & "'  And  DateDiff( 'd','" & Trim(txt借阅日期.Text) & "',借阅日期) =0 "
        sql2 = "delete from jsxxb  where 读者编号 = '" & Trim(txt读者编号(1).Text) & "'And 图书编号 = '" & Trim(txt图书编号(1).Text) & "'  And  DateDiff( 'd','" & Trim(txt借阅日期.Text) & "',借阅日期) =0 "
        sql3 = " update tsxxb set 现存量 = 现存量 - " & Val(txt损失数量.Text) & " where 图书编号 = '" & Trim(txt图书编号(1).Text) & "'"
        
        If Val(txt损失数量.Text) = Val(txt借阅数量.Text) Then
                TransactSQL (sql2)
        Else
                TransactSQL (sql)  '更新借阅数量
                TransactSQL (sql3) '更新现存量
        End If
             
        '再进行注销
        If chkdel.Value Then

                sql2 = "insert into zxxxb values('" & Trim(txt图书编号(1).Text) & "'," & Val(txt损失数量.Text) & ",'" & _
                        Format(Now, "YYYY-MM-DD") & "','" & user & "')"
                TransactSQL (sql2) '在zxxxb注销信息表中添加一条新记录
                
                '更新图书信息表中的记录
                sql = "select * from tsxxb  where 图书编号='" & Trim(txt图书编号(1).Text) & "'"
                Set rs = TransactSQL(sql)
            
                If (rs(13) - Val(txt损失数量.Text)) > 0 Then
                    rs(15) = "否"
                Else
                    rs(15) = "是"
                End If
                'rs(12) = rs(12) - Val(txt损失数量.Text)
                rs(13) = rs(13) - Val(txt损失数量.Text) '库存总量减少
                rs.Update
         End If
         
         '添加记录到当前窗体的显示表格fineGrid中
         fineGrid.AddItem Trim(txt图书编号(1).Text) & vbTab & Trim(txt图书名称.Text) & _
                vbTab & Trim(txt读者编号(1).Text) & vbTab & Trim(txt读者姓名.Text) & vbTab & _
                Val(txt图书价格.Text) & vbTab & Val(txt损失数量.Text) & vbTab & Val(txt应罚金额.Text) & _
                vbTab & Val(txt实收金额.Text) & vbTab & DTP罚款日期(2).Value & vbTab & "图书损失" & vbTab & user
         fineGrid.Refresh
         
         MsgBox "执行成功!"
         Call clear '清除数据
         rs.Close
    End If
    
End Sub

Private Sub cmdexit_Click()
Unload Me
End Sub

Private Sub cmdqueue_Click()
    Dim rs As New ADODB.Recordset
    Dim sql As String
    Dim bf(3) As Boolean
    Dim i As Integer
    
    For i = 0 To 3 - 1 Step 1
       bf(i) = False
    Next i
    
    '按条件对罚款信息表(损失)进行查询
    sql = "select * from fkxxb where "
    
    '判断是否选择按图书编号查询
    If chk图书编号.Value = 1 Then
        If Trim(txt图书编号(0).Text) = "" Then
            MsgBox "图书编号不能为空!", vbOKOnly + vbExclamation, "警告"
            txt图书编号(0).SetFocus
            Exit Sub
        Else
            bf(0) = True
            '组合查询语句
            sql = sql & " 图书编号 like '" & Trim(txt图书编号(0).Text) & "%'"
        End If
    End If
    
    '判断是否选择按读者编号查询
    If chk读者编号.Value = 1 Then
        If Trim(txt读者编号(0).Text) = "" Then
            MsgBox "读者编号不能为空!", vbOKOnly + vbExclamation, "警告"
            txt读者编号(0).SetFocus
            Exit Sub
        Else
            bf(1) = True
            If bf(0) Then
                '组和查询语句
                sql = sql & " and 读者编号 like '" & Trim(txt读者编号(0).Text) & "%'"
             Else
                sql = sql & " 读者编号 like'" & Trim(txt读者编号(0).Text) & "%'"
             End If
        End If
    End If
    
    '判断是否选择按罚款日期段查询
    If chk罚款日期.Value = 1 Then
            If DateDiff("d", DTP罚款日期(0).Value, DTP罚款日期(1).Value) < 0 Then
                MsgBox "<<这符号的左边日期要早于或等于右边的日期,请修改!", vbOKOnly + vbExclamation, "警告"
                Exit Sub
            End If
            
            bf(2) = True
            If bf(0) Or bf(1) Then
            '组合查询语句
               
                sql = sql & " and DateDiff( 'd','" & DTP罚款日期(0).Value & "',罚款日期) >=0 and DateDiff( 'd','" & DTP罚款日期(1).Value & "',罚款日期) <=0 "
                
            Else
                sql = sql & " DateDiff( 'd','" & DTP罚款日期(0).Value & "',罚款日期) >=0 and DateDiff( 'd','" & DTP罚款日期(1).Value & "',罚款日期) <=0 "
                
            End If
    End If
    
    '判断是否设置查询方式
    If (bf(0) Or bf(1) Or bf(2)) = False Then
        Call fineAllBook  '显示全部的罚款信息
        MsgBox "请设置查询方式!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    
    '查询所有满足条件的内容
    sql = sql & " order by 图书编号"
    Set rs = TransactSQL(sql)
    If rs.EOF = True Then
        MsgBox "没有找到要查询的信息", vbOKOnly
    Else
        With fineGrid
          .Rows = 1
          Do While Not rs.EOF
            .Rows = .Rows + 1
            .TextMatrix(.Rows - 1, 0) = rs.Fields(0)
            .TextMatrix(.Rows - 1, 1) = rs.Fields(1)
            .TextMatrix(.Rows - 1, 2) = rs.Fields(2)
            .TextMatrix(.Rows - 1, 3) = rs.Fields(3)
            .TextMatrix(.Rows - 1, 4) = rs.Fields(4)
            .TextMatrix(.Rows - 1, 5) = rs.Fields(5)
            .TextMatrix(.Rows - 1, 6) = rs.Fields(6)
            .TextMatrix(.Rows - 1, 7) = rs.Fields(7)
            .TextMatrix(.Rows - 1, 8) = rs.Fields(8)
            .TextMatrix(.Rows - 1, 9) = rs.Fields(9)
            .TextMatrix(.Rows - 1, 10) = rs.Fields(10)
            rs.MoveNext
           Loop
        End With
    End If
    rs.Close
End Sub

Private Sub Form_Load()
Call fullpic(Me, Picbg1) '背景图

Me.Left = (frmmain.ScaleWidth - Me.Width) / 2
Me.Top = (frmmain.ScaleHeight - Me.Height) / 2

With fineGrid
         .Rows = 1
         .TextMatrix(0, 0) = "图书编号"
         .TextMatrix(0, 1) = "图书名称"
         .TextMatrix(0, 2) = "读者编号"
         .TextMatrix(0, 3) = "读者姓名"
         .TextMatrix(0, 4) = "图书价格"
         .TextMatrix(0, 5) = "图书数量"
         .TextMatrix(0, 6) = "应罚金额"
         .TextMatrix(0, 7) = "实收金额"
         .TextMatrix(0, 8) = "罚款日期"
         .TextMatrix(0, 9) = "罚款原因"
         .TextMatrix(0, 10) = "操作员"
 
         .ColAlignment(0) = 1
         .ColAlignment(2) = 1
         .ColWidth(0) = 1500
         .ColWidth(1) = 1800
         .ColWidth(2) = 1500
         .ColWidth(3) = 1500
         .ColWidth(4) = 800
         .ColWidth(5) = 800
         .ColWidth(6) = 800
         .ColWidth(7) = 800
         .ColWidth(8) = 1000
         .ColWidth(7) = 600
End With
Call fineAllBook
   
DTP罚款日期(0).Value = Trim(Year(Now)) & "-" & Trim(Month(Now)) & "-" & Trim(day(Now))
DTP罚款日期(1).Value = Trim(Year(Now)) & "-" & Trim(Month(Now)) & "-" & Trim(day(Now))
Call clear '清空文本框数据
End Sub

Private Sub txt实收金额_Change()

If Not IsNumeric(txt实收金额.Text) And txt实收金额.Text <> "" And Val(txt实收金额.Text) >= 0 Then
     MsgBox "实收金额,只能输入正的数值或零!", vbCritical + vbOKOnly, "错误"
     txt实收金额.Text = Format(Val(""), "0.00")
End If

End Sub

Private Sub txt损失数量_Change()

If Not IsNumeric(txt损失数量.Text) And txt损失数量.Text <> "" And Val(txt损失数量.Text) > 0 Then
     MsgBox "损失数量,只能输入正整数!", vbCritical + vbOKOnly, "错误"
     txt损失数量.Text = Val("")
ElseIf Val(txt损失数量.Text) > Val(txt借阅数量.Text) Then
     MsgBox Trim(txt读者姓名.Text) & " 只借了 " & Val(txt借阅数量.Text) & _
     "本书,损失数量不可能大于借阅数量!!请核对数据。", vbCritical + vbOKOnly, "错误"
     txt损失数量.Text = Val("")
Else
     txt应罚金额.Text = Format(Val(txt损失数量.Text) * Val(txt图书价格.Text), "0.00")
     txt实收金额.Text = Format(Val(txt应罚金额.Text), "0.00")
End If

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -