📄 frmborrow.vb
字号:
Me.Label5.Location = New System.Drawing.Point(192, 44)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(80, 16)
Me.Label5.TabIndex = 7
Me.Label5.Text = "回车确认输入"
'
'txbBook
'
Me.txbBook.Location = New System.Drawing.Point(88, 40)
Me.txbBook.Name = "txbBook"
Me.txbBook.TabIndex = 6
Me.txbBook.Text = ""
'
'rbnCode
'
Me.rbnCode.Location = New System.Drawing.Point(16, 52)
Me.rbnCode.Name = "rbnCode"
Me.rbnCode.Size = New System.Drawing.Size(64, 24)
Me.rbnCode.TabIndex = 5
Me.rbnCode.Text = "条形码"
'
'rbnBookNumber
'
Me.rbnBookNumber.Checked = True
Me.rbnBookNumber.Location = New System.Drawing.Point(16, 24)
Me.rbnBookNumber.Name = "rbnBookNumber"
Me.rbnBookNumber.Size = New System.Drawing.Size(64, 24)
Me.rbnBookNumber.TabIndex = 4
Me.rbnBookNumber.TabStop = True
Me.rbnBookNumber.Text = "编号"
'
'txbReader
'
Me.txbReader.Location = New System.Drawing.Point(88, 32)
Me.txbReader.Name = "txbReader"
Me.txbReader.TabIndex = 2
Me.txbReader.Text = ""
'
'frmBorrow
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(688, 273)
Me.Controls.Add(Me.GroupBox2)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.ToolBar1)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmBorrow"
Me.Text = "图书借阅"
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
CType(Me.dgdList, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub txbBook_KeyDown(ByVal sender As Object, _
ByVal e As Windows.Forms.KeyEventArgs) Handles txbBook.KeyDown
'判断输入的字符是否是回车
If e.KeyCode = Keys.Enter Then
'判断读者的借阅数量是否超过可借数量
If dtData.Rows.Count >= CInt(Me.txbCount.Text.Trim) Then
MessageBox.Show("你借阅数量已经超过可借数量")
End If
Dim db As DataBase = New DataBase
Dim strSQL As String = ""
strSQL += "select 编号,书名,出版社,价格,b.可借天数 from"
strSQL += " 图书信息 as a , 图书类型 as b "
strSQL += "where a.类型 = b.类型名称"
'判断输入的是编号,还是条形码
If rbnBookNumber.Checked = True Then
strSQL += " and 编号='" + txbBook.Text.Trim + "'"
Else
strSQL += " and 条形码='" + txbBook.Text.Trim + "'"
End If
Dim dv As DataView = db.RunSelectSQL(strSQL)
Dim strNumber, strName, strPress, strPrice, strDays As String
If dv.Count <> 0 Then
'判断该读者是否已经借过这本书
For Each tmpdr As DataRow In dtData.Rows
If tmpdr("编号").ToString().Trim _
= dv(0)("编号").ToString.Trim Then
MessageBox.Show("图书已经借给该读者!")
Exit Sub
End If
Next
strNumber = dv(0)("编号").ToString.Trim
strName = dv(0)("书名").ToString.Trim
strPress = dv(0)("出版社").ToString.Trim
strPrice = dv(0)("价格").ToString.Trim
strDays = dv(0)("可借天数").ToString.Trim
Dim dr As DataRow = dtData.NewRow
dr("状态") = "新借"
dr("编号") = strNumber
dr("书名") = strName
dr("借阅时间") = Date.Now.ToString("yyyy-MM-dd")
dr("应还时间") = _
Date.Now.AddDays(CInt(strDays)).ToString("yyyy-MM-dd")
dr("出版社") = strPress
dr("价格") = strPrice
dtData.Rows.Add(dr)
dtData.DefaultView.AllowNew = False
dtData.DefaultView.AllowEdit = False
dtData.DefaultView.AllowDelete = False
dgdList.DataSource = dtData.DefaultView
End If
db.Dispose()
End If
End Sub
Private Sub txbReader_KeyDown(ByVal sender As System.Object, _
ByVal e As Windows.Forms.KeyEventArgs) Handles txbReader.KeyDown
'判断输入的字符是否是回车
If e.KeyCode = Keys.Enter Then
'判断是否有未保存数据
If dtData.Rows.Count <> 0 Then
If MessageBox.Show("未保存数据", "提示", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
'清空数据表
dtData.Rows.Clear()
Else
Return
End If
End If
Dim db As DataBase = New DataBase
Dim strSQL As String = ""
strSQL += "select 姓名,编号,a.类型,图书册书 from 读者类型"
strSQL += " as a , 读者信息 as b where a.类型 = b.类型"
'判断输入的是编号,还是条形码
If rbnReaderNumber.Checked = True Then
strSQL += " and 编号='" + txbReader.Text.Trim + "'"
Else
strSQL += " and 条形码='" + txbReader.Text.Trim + "'"
End If
Dim dv As DataView = db.RunSelectSQL(strSQL)
'判断是否存在此读者
If dv.Count <> 0 Then
'获得读者信息
txbName.Text = dv(0)("姓名").ToString.Trim
txbType.Text = dv(0)("类型").ToString.Trim
txbCount.Text = dv(0)("图书册书").ToString.Trim
'查看此读者是否已经借阅了其它书
strSQL = "select 状态,编号,书名,借阅时间,应还时间,出版社,"
strSQL += "价格 from 图书信息 as a , 图书借阅 as b where"
strSQL += " a.编号 = b.图书编号 and 状态 = '未还' and "
strSQL += "读者编号 ='" + dv(0)("编号").ToString.Trim + "'"
dv = db.RunSelectSQL(strSQL)
If dv.Count <> 0 Then
dv.AllowDelete = False
dv.AllowEdit = False
dv.AllowNew = False
dtData = dv.Table
Me.dgdList.DataSource = dv
End If
txbReader.ReadOnly = True
txbBook.Focus()
Else
txbName.Text = ""
txbType.Text = ""
txbCount.Text = ""
txbReader.Focus()
End If
db.Dispose()
End If
End Sub
Private Sub SetTextBox(ByVal bState As Boolean)
Me.txbName.ReadOnly = bState
Me.txbCount.ReadOnly = bState
Me.txbType.ReadOnly = bState
End Sub
Private Sub frmBorrow_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
SetTextBox(True)
InitDataTable()
End Sub
Private Sub InitDataTable()
'构造数据表
dtData = New DataTable
dtData.Columns.Add("状态")
dtData.Columns.Add("编号")
dtData.Columns.Add("书名")
dtData.Columns.Add("借阅时间")
dtData.Columns.Add("应还时间")
dtData.Columns.Add("出版社")
dtData.Columns.Add("价格")
End Sub
Private Sub frmBorrow_Closing(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles MyBase.Closing
If Me.dtData.Rows.Count <> 0 Then
For Each tmpdr As DataRow In dtData.Rows
If tmpdr("状态").ToString.Trim = "新借" Then
If MessageBox.Show("未保存数据", "提示", _
MessageBoxButtons.YesNo) = DialogResult.No Then
e.Cancel = True
dtData.Dispose()
End If
End If
Next
End If
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) _
Handles ToolBar1.ButtonClick
Select Case e.Button.Text
Case "确定借书"
If Me.dtData.Rows.Count <> 0 Then
Dim strSQL As String = ""
For Each tmpdr As DataRow In dtData.Rows
'判断书是否是新借
If tmpdr("状态").ToString.Trim = "新借" Then
'将新借的书插入到数据库中
strSQL = " insert into 图书借阅(图书编号,"
strSQL += "读者编号,借阅时间,应还时间,"
strSQL += "续借次数,操作员,状态) values('"
strSQL += tmpdr("编号") + "','"
strSQL += txbReader.Text.Trim
strSQL += "','" + tmpdr("借阅时间") + "','"
strSQL += tmpdr("应还时间") + "'"
strSQL += ",0,'操作员','新借')"
End If
Next
If strSQL.Length <> 0 Then
Dim db As DataBase = New DataBase
db.RunDelOrInsSQL(strSQL)
db.RunDelOrInsSQL("sf_图书借阅")
db.Dispose()
End If
End If
Case "退出"
Me.Close()
End Select
'清空控件信息
txbName.Text = ""
txbType.Text = ""
txbCount.Text = ""
txbBook.Text = ""
txbReader.Text = ""
'清空数据表
dtData.Clear()
'设置数据源
dtData.DefaultView.AllowNew = False
dtData.DefaultView.AllowEdit = False
dtData.DefaultView.AllowDelete = False
dgdList.DataSource = dtData.DefaultView
Me.txbReader.ReadOnly = False
Me.txbReader.Focus()
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -