📄 frmhuajia.vb
字号:
ts.GridColumnStyles.Add(aColumnTextColumn)
Next
ts.MappingName = dtDetail.TableName
ts.ReadOnly = False
ts.AllowSorting = False
Me.dgdList.TableStyles.Add(ts)
'设置数据源
dgdList.DataSource = dtDetail.DefaultView
dtDetail.DefaultView.AllowNew = False
dtDetail.DefaultView.AllowDelete = False
dtDetail.DefaultView.AllowEdit = False
End Sub
Private Sub CalMXMoney()
'计算明细金额
Dim dPrice As Double = CType(txbPrice.Text, Double)
Dim iCount As Integer = CInt(txbNumber.Text)
Me.txbMMoney.Text = (dPrice * iCount).ToString
End Sub
Private Sub Clear()
'清空门诊划价GroupBox中的信息
Me.txbId.Text = ""
Me.txbMoney.Text = ""
Me.txbName.Text = ""
Me.txbSex.Text = ""
End Sub
Private Sub ClearMX()
'清空门诊明细的信息
Me.txbMXId.Text = ""
Me.txbMName.Text = ""
Me.txbGuiGe.Text = ""
Me.txbUnit.Text = ""
Me.txbPrice.Text = "0"
Me.txbNumber.Text = "1"
Me.txbMMoney.Text = ""
Me.txbPY.Text = ""
End Sub
Private Sub CalTotalMoney()
'计算明细合计金额
If dtDetail.Rows.Count = 0 Then
Me.txbMoney.Text = "0"
End If
Dim s As String = ""
Dim dTotal As Single = 0
For Each dr As DataRow In dtDetail.Rows
s = dr("金额")
dTotal = dTotal + CSng(s.Trim)
Next
Me.txbMoney.Text = dTotal.ToString
End Sub
Private Sub txbNumber_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles txbNumber.TextChanged
CalMXMoney()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnAdd.Click
If txbName.Text.Trim.Length = 0 Or _
txbMXId.Text.Trim.Length = 0 Then
Return
End If
CalMXMoney()
Dim dr As DataRow = Me.dtDetail.NewRow
dr("编号") = Me.txbMXId.Text.Trim
dr("名称") = Me.txbMName.Text.Trim()
dr("规格") = Me.txbGuiGe.Text.Trim
dr("单位") = Me.txbUnit.Text.Trim
dr("单价") = Me.txbPrice.Text.Trim
dr("数量") = Me.txbNumber.Text.Trim
dr("金额") = Me.txbMMoney.Text.Trim
dr("拼音码") = Me.txbPY.Text.Trim
dtDetail.Rows.Add(dr)
ClearMX()
CalTotalMoney()
End Sub
Private Sub txbNumber_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles txbNumber.KeyPress
'判断输入的字符是否为数字
If e.KeyChar.IsDigit(e.KeyChar) = False Then
'不是数字的字符不处理
e.Handled = True
Me.txbNumber.Text = "1"
End If
End Sub
Private Sub btnOpen_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnOpen.Click
Dim dlg As frmSelectHuaJia = New frmSelectHuaJia
dlg.ShowDialog()
Dim strId As String = dlg.GetInfo().Trim
Dim db As DataBase = New DataBase
Dim strSQL As String = "select * from 门诊挂号 where 编号='"
strSQL += strId + "' and 是否已划价='否'"
Dim dv As DataView = db.RunSelectSQL(strSQL)
Me.txbId.Text = strId
Me.txbName.Text = dv(0)("姓名")
Me.txbSex.Text = dv(0)("性别")
Me.cbbDoctor.Text = dv(0)("医生")
Me.cbbRoom.Text = dv(0)("挂号科室")
db.Dispose()
End Sub
Private Sub frmHuaJia_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim db As DataBase = New DataBase
Dim dv As DataView = db.RunSelectSQL("select 编号,名称 from 科室资料")
Me.cbbRoom.DataSource = dv
Me.cbbRoom.DisplayMember = "名称"
Me.cbbRoom.ValueMember = "编号"
dv = db.RunSelectSQL("select 编号,姓名 from 医生资料")
Me.cbbDoctor.DataSource = dv
Me.cbbDoctor.DisplayMember = "姓名"
Me.cbbDoctor.ValueMember = "编号"
db.Dispose()
InitDataTalbe()
End Sub
Private Sub txbPY_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) _
Handles txbPY.KeyDown
If e.KeyCode = Keys.Enter Then
Dim dlg As frmSelectHuaJiaMX = New frmSelectHuaJiaMX
dlg.strPY = Me.txbPY.Text.Trim
dlg.ShowDialog()
Dim strId As String = dlg.GetInfo()
Dim db As DataBase = New DataBase
Dim dv As DataView = _
db.RunSelectSQL("select * from v收费项目及药品 where 编号='" _
+ strId + "'")
Me.txbMXId.Text = dv(0)("编号")
Me.txbPY.Text = dv(0)("拼音码")
Me.txbMName.Text = dv(0)("名称")
Me.txbGuiGe.Text = dv(0)("规格")
Me.txbUnit.Text = dv(0)("单位")
Me.txbPrice.Text = dv(0)("单价")
Me.txbNumber.Text = "1"
db.Dispose()
End If
End Sub
Private Sub btnDel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnDel.Click
Try
'获得DataGrid当前被选中的行号
Dim iRow = dgdList.CurrentRowIndex
'弹出对话框让用户确认要删除记录
'如果用户确认要删除记录
If MessageBox.Show("你确认要删除此条记录吗?", _
"Confirm", MessageBoxButtons.YesNo) = DialogResult.Yes Then
'从商品清单表删除当前被选中记录()
dtDetail.Rows(iRow).Delete()
' SetTaxForDelOrUpgrade()
If dtDetail.Rows.Count = 0 Then
iCurrentLine = -1
End If
ClearMX()
Else
Exit Sub
End If
Catch ex As Exception
MessageBox.Show("删除数据出错")
End Try
CalTotalMoney()
End Sub
Private Sub dgdList_CurrentCellChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles dgdList.CurrentCellChanged
If iCurrentLine = -1 Or iCurrentLine _
<> dgdList.CurrentCell.RowNumber Then
iCurrentLine = dgdList.CurrentCell.RowNumber
End If
Dim iRow As Integer = dgdList.CurrentRowIndex
txbMXId.Text = dtDetail.Rows(iRow)("编号")
txbMName.Text = dtDetail.Rows(iRow)("名称")
txbGuiGe.Text = dtDetail.Rows(iRow)("规格")
txbUnit.Text = dtDetail.Rows(iRow)("单位")
txbPrice.Text = dtDetail.Rows(iRow)("单价")
txbNumber.Text = dtDetail.Rows(iRow)("数量")
txbMMoney.Text = dtDetail.Rows(iRow)("金额")
txbPY.Text = dtDetail.Rows(iRow)("拼音码")
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSave.Click
If dgdList.CurrentRowIndex = -1 Then
Return
End If
iCurrentLine = dgdList.CurrentRowIndex
dtDetail.Rows(iCurrentLine)("编号") = txbMXId.Text
dtDetail.Rows(iCurrentLine)("名称") = txbMName.Text
dtDetail.Rows(iCurrentLine)("规格") = txbGuiGe.Text
dtDetail.Rows(iCurrentLine)("单位") = txbUnit.Text
dtDetail.Rows(iCurrentLine)("单价") = txbPrice.Text
dtDetail.Rows(iCurrentLine)("数量") = txbNumber.Text
dtDetail.Rows(iCurrentLine)("金额") = txbMMoney.Text
dtDetail.Rows(iCurrentLine)("拼音码") = txbPY.Text
ClearMX()
CalTotalMoney()
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnCancel.Click
Me.ClearMX()
Me.Clear()
Me.dtDetail.Rows.Clear()
Me.iCurrentLine = -1
End Sub
Private Sub btnInsert_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnInsert.Click
If Me.dtDetail.Rows.Count = 0 Then
Return
End If
Dim strSQL As String = ""
Dim db As DataBase = New DataBase
strSQL = "select max(编号) as 编号 from 门诊划价 where "
strSQL += "编号 like '" + Date.Now.Year.ToString + "%'"
Dim dv As DataView = db.RunSelectSQL(strSQL)
Dim strId As String = "0000001"
Dim strTmp As String = "0000000"
Dim id As Integer = 0
If dv(0)(0).GetType.ToString <> "System.DBNull" Then
strId = dv(0)(0).ToString.Substring(4)
id = CInt(strId) + 1
strId = _
strTmp.Substring(0, strTmp.Length - id.ToString.Length)
strId += id.ToString
End If
strId = Date.Now.Year.ToString + strId
strSQL = " Insert into 门诊划价(编号, 科室, 挂号编号, 医生, "
strSQL += "划价时间, 划价员, 是否收费,划价金额, 是否发药) "
strSQL += "values ('" + strId + "','" + cbbRoom.Text + "','"
strSQL += txbId.Text.Trim + "','"
strSQL += cbbDoctor.Text.Trim + "','"
strSQL += Date.Now.ToString + "','张三','否',"
strSQL += txbMoney.Text.Trim + ",'否') "
For Each dr As DataRow In dtDetail.Rows
strSQL += " Insert into 门诊划价明细(划价编号,"
strSQL += " 药品编号, 单价, 数量, 金额) values ('"
strSQL += strId + "','" + dr("编号") + "','" + dr("单价")
strSQL += "','" + dr("数量") + "','" + dr("金额") + "') "
Next
db.RunDelOrInsSQL(strSQL)
strSQL = " update 门诊挂号 set 是否已划价='是' where 编号 = '"
strSQL += txbId.Text.Trim + "'"
db.RunDelOrInsSQL(strSQL)
db.Dispose()
Me.ClearMX()
Me.Clear()
Me.dtDetail.Rows.Clear()
Me.iCurrentLine = -1
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -