📄 frmorderlist.vb
字号:
dgdOrderList.DataSource = dtOrderList.DefaultView
dtOrderList.DefaultView.AllowNew = False
End Sub
'Private Sub dgdOrderList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgdOrderList.Click
' MessageBox.Show("tt")
' If Me.dgdOrderList.CurrentRowIndex <> -1 Then
' Dim iRow As Integer = Me.dgdOrderList.CurrentRowIndex
' Me.txbPrice.Text = Me.dtOrderList.Rows(iRow)("单价")
' Me.txbGoodsCount.Text = Me.dtOrderList.Rows(iRow)("数量")
' Me.txbGoodsId.Text = Me.dtOrderList.Rows(iRow)("货号")
' Me.txbGoodsName.Text = Me.dtOrderList.Rows(iRow)("品名")
' Dim i As Integer
' Dim s As String
' For i = 0 To Me.cbbDepotId.Items.Count
' s = Me.cbbDepotId.Items(i)("仓库名")
' If s.Trim = Me.dtOrderList.Rows(iRow)("仓库") Then
' Me.cbbDepotId.SelectedIndex = i
' Exit For
' End If
' Next
' End If
'End Sub
Private Sub Clear()
Me.txbPrice.Text = ""
Me.txbGoodsCount.Text = ""
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSave.Click
Try
Dim i, total As Integer
Dim s As String = "0"
Dim rate As Integer = CInt(lblRateValue.Text.Trim)
If dgdOrderList.CurrentRowIndex <> -1 Then
'获取当前行并进行修改
Dim iRow As Integer = dgdOrderList.CurrentRowIndex
With dtOrderList
.Rows(iRow)("货号") = txbGoodsId.Text.Trim
.Rows(iRow)("单价") = txbPrice.Text.Trim
.Rows(iRow)("数量") = txbGoodsCount.Text.Trim
.Rows(iRow)("单位") = txbGoodsUnit.Text.Trim
.Rows(iRow)("品名") = txbGoodsName.Text.Trim
.Rows(iRow)("单价") = txbPrice.Text.Trim
.Rows(iRow)("仓库") = _
cbbDepotId.SelectedItem("仓库名")
End With
'计算税率
total = CInt(txbPrice.Text.Trim) * _
CInt(txbGoodsCount.Text.Trim)
With dtOrderList
.Rows(iRow)("税率") = lblRateValue.Text.Trim
.Rows(iRow)("税额") = _
(total - total / (1 + rate / 100)).ToString("f")
.Rows(iRow)("不含税价") = _
(total / (1 + rate / 100)).ToString("f")
.Rows(iRow)("税价合计") = total.ToString
End With
End If
SetTaxForDelOrUpgrade()
Catch ex As Exception
MessageBox.Show("数据错误")
End Try
Clear()
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As Object, _
ByVal e As ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
If e.Button Is tbbSave Then
If dtOrderList.Rows.Count = 0 Then
Exit Sub
End If
Dim strSQL As String = ""
Dim db As DataBase = New DataBase
Try
' 获取单据ID
Dim dvTemp As DataView = _
db.RunSelectSQL("select max(编号) as 编号 from 进货单历史")
Dim sId As String = "0000000001"
If dvTemp.Table.Rows(0).IsNull(0) = False Then
sId = (CType(dvTemp.Table.Rows(0)("编号"), _
Integer) + 1).ToString
End If
Dim count As Integer
For count = sId.Trim.Length To 9
sId = "0" + sId
Next
' 删除已有数据
db.RunDelOrInsSQL("delete from 进货单明细 where 进货单号='" _
+ sId + "'")
db.RunDelOrInsSQL("delete from 进货单 where 编号='" _
+ sId + "'")
' 写入进货单
strSQL = "insert into 进货单(编号,供货商号,进货日期, 制单人,"
strSQL += "业务员,税价合计,不含税价,税额) values('" + sId + "','"
strSQL += txbSupplyId.Text.Trim + "','" _
+ txbOrderDate.Text + "','" + txbListMaker.Text.Trim + "','"
strSQL += CType(cbbWorker.SelectedItem("姓名"), String).Trim
strSQL += "'," + txbTotal.Text.Trim() + ","
strSQL += txbWithoutTax.Text.Trim()
strSQL += "," + txbTax.Text + ")"
db.RunDelOrInsSQL(strSQL)
'MessageBox.Show(strSQL)
' 写入明细
Dim sId1 As String = "0000000000"
dvTemp = db.RunSelectSQL( _
"select max(编号) as 编号 from 进货单明细历史")
If dvTemp.Table.Rows(0).IsNull(0) <> True Then
sId1 = dvTemp.Table.Rows(0)(0)
End If
Dim i As Integer
For i = 0 To dtOrderList.Rows.Count - 1
sId1 = (CInt(sId1) + 1).ToString
For count = sId1.Trim.Length To 9
sId1 = "0" + sId1
Next
strSQL = _
"insert into 进货单明细(编号,进货单号,货号,进货数量," _
+ "进价,仓库,税价合计,税率,不含税价,税额) values('" + sId1 _
+ "','" + sId + "','" + dtOrderList.Rows(i)("货号") + "','" _
+ dtOrderList.Rows(i)("数量") + "','" _
+ dtOrderList.Rows(i)("单价") + "','"
strSQL += dtOrderList.Rows(i)("仓库") + "','" _
+ dtOrderList.Rows(i)("税额") + "','"
strSQL += dtOrderList.Rows(i)("税率") + "','" _
+ dtOrderList.Rows(i)("不含税价") + "','"
strSQL += dtOrderList.Rows(i)("税额") + "')"
db.RunDelOrInsSQL(strSQL)
Next
Catch ex As Exception
MessageBox.Show("保存数据出错")
End Try
db.Dispose()
End If
'判断单击的是否是打印按钮
If e.Button Is tbbPrint Then
Print()
Dim db As DataBase = New DataBase
If MessageBox.Show("是否记帐确认进货单", "提示", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
Try
db.RunDelOrInsSQL("exec sf_进货单")
'清空用户界面
txbSupplyId.Text = ""
txbSupplyName.Text = ""
txbSupplyName.Text = ""
txbGoodsCount.Text = ""
txbGoodsName.Text = ""
txbGoodsId.Text = ""
txbGoodsUnit.Text = ""
txbPrice.Text = ""
txbTax.Text = "0"
txbTotal.Text = "0"
txbWithoutTax.Text = "0"
dtOrderList.Clear()
Catch ex As Exception
MessageBox.Show("进货单确认出错")
End Try
End If
db.Dispose()
End If
End Sub
Private Sub txbGoodsId_Leave(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles txbGoodsId.MouseLeave
If txbGoodsId.Text.Trim.Length > 0 Then
Dim db As DataBase = New DataBase
Dim dv As DataView = _
db.RunSelectSQL("select 品名,单位 from 商品清单 where 货号 = '" _
+ txbGoodsId.Text.Trim + "'")
If dv.Table.Rows.Count > 0 Then
txbGoodsName.Text = dv.Table.Rows(0)("品名")
txbGoodsUnit.Text = dv.Table.Rows(0)("单位")
Else
txbGoodsId.Text = ""
txbGoodsName.Text = ""
txbGoodsUnit.Text = ""
End If
db.Dispose()
End If
End Sub
Private Sub txbSupplyId_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Me.txbSupplyId.Text.Trim.Length > 0 Then
Dim db As DataBase = New DataBase
Dim dv As DataView = db.RunSelectSQL("select 名称 from 供货商清单 where 供货商号 = '" + Me.txbSupplyId.Text.Trim + "'")
If dv.Table.Rows.Count > 0 Then
Me.txbSupplyName.Text = dv.Table.Rows(0)("名称")
Else
Me.txbSupplyId.Text = ""
Me.txbSupplyName.Text = ""
End If
db.Dispose()
End If
End Sub
Private Sub linklbGoods_LinkClicked(ByVal sender As Object, _
ByVal e As LinkLabelLinkClickedEventArgs) _
Handles linklbGoods.LinkClicked
Try
Dim dlgGoods As frmGoodsInfo = New frmGoodsInfo
dlgGoods.bClose = True
dlgGoods.tbbDel.Enabled = False
dlgGoods.tbbSave.Enabled = False
dlgGoods.ShowDialog()
Dim result() As String = dlgGoods.SetInfo().Split("|")
txbGoodsId.Text = result(0)
txbGoodsName.Text = result(1)
txbGoodsUnit.Text = result(2)
Catch ex As Exception
MessageBox.Show("错误")
End Try
End Sub
Private Sub btnDel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnDel.Click
Try
'获得DataGrid当前被选中的行号
Dim iRow = dgdOrderList.CurrentRowIndex
'弹出对话框让用户确认要删除记录
'如果用户确认要删除记录
If MessageBox.Show("你确认要删除此条记录吗?", "Confirm", _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
'从商品清单表删除当前被选中记录()
dtOrderList.Rows(iRow).Delete()
SetTaxForDelOrUpgrade()
Clear()
Else
Exit Sub
End If
Catch ex As Exception
MessageBox.Show("删除数据出错")
End Try
End Sub
Private Sub SetTaxForDelOrUpgrade()
Dim total As Integer = 0
Dim i As Integer
Dim rate As Integer = CInt(Me.lblRateValue.Text.Trim)
Dim s As String
'计算税额
For i = 0 To Me.dtOrderList.Rows.Count - 1
s = Me.dtOrderList.Rows(i)("税价合计")
total = total + CInt(s.Trim)
Next
Me.txbTax.Text = (total - total / (1 + rate / 100)).ToString("f")
Me.txbTotal.Text = total.ToString
Me.txbWithoutTax.Text = (total / (1 + rate / 100)).ToString("f")
End Sub
Private Sub SetTaxForAdd(ByVal total As Integer)
Try
'计算税额
Dim rate As Integer = CInt(Me.lblRateValue.Text.Trim)
Dim iAll As Integer = total + CInt(Me.txbTotal.Text.Trim())
Me.txbTotal.Text = iAll.ToString
Me.txbTax.Text = (iAll - iAll / (1 + rate / 100)).ToString("f")
Me.txbWithoutTax.Text = (iAll / (1 + rate / 100)).ToString("f")
Catch ex As Exception
MessageBox.Show("数据格式不正确")
End Try
End Sub
Private Sub Print()
'新建表
Dim dtPrint As DataTable = New DataTable("Print")
Dim dr As DataRow
dtPrint.Columns.Add("名称", Type.GetType("System.String"))
dtPrint.Columns.Add("品名", Type.GetType("System.String"))
dtPrint.Columns.Add("进货数", Type.GetType("System.String"))
dtPrint.Columns.Add("单位", Type.GetType("System.String"))
dtPrint.Columns.Add("仓库", Type.GetType("System.String"))
dtPrint.Columns.Add("不含税", Type.GetType("System.String"))
dtPrint.Columns.Add("税额", Type.GetType("System.String"))
dtPrint.Columns.Add("税价合计", Type.GetType("System.String"))
dtPrint.Columns.Add("进货日期", Type.GetType("System.String"))
Dim i As Integer
'对要打印的数据表赋值
For i = 0 To dtOrderList.Rows.Count - 1
dr = dtPrint.NewRow()
dr("名称") = txbSupplyName.Text.Trim
dr("品名") = dtOrderList.Rows(i)("品名")
dr("进货数") = dtOrderList.Rows(i)("数量")
dr("单位") = dtOrderList.Rows(i)("单位")
dr("仓库") = dtOrderList.Rows(i)("仓库")
dr("不含税") = dtOrderList.Rows(i)("不含税价")
dr("税额") = dtOrderList.Rows(i)("税额")
dr("税价合计") = dtOrderList.Rows(i)("税价合计")
dr("进货日期") = txbOrderDate.Text.Trim
dtPrint.Rows.Add(dr)
Next
'显示打印对话框
Dim frm As frmPrint = New frmPrint(dtPrint)
frm.ShowDialog()
End Sub
Private Sub dgdOrderList_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dgdOrderList.MouseDown
Dim hti As DataGrid.HitTestInfo = Me.dgdOrderList.HitTest(New Point(e.X, e.Y))
If hti.Type = DataGrid.HitTestType.Cell Then
Dim iRow As Integer = Me.dgdOrderList.CurrentRowIndex
Me.txbPrice.Text = Me.dtOrderList.Rows(iRow)("单价")
Me.txbGoodsCount.Text = Me.dtOrderList.Rows(iRow)("数量")
Me.txbGoodsId.Text = Me.dtOrderList.Rows(iRow)("货号")
Me.txbGoodsName.Text = Me.dtOrderList.Rows(iRow)("品名")
Dim i As Integer
Dim s As String
For i = 0 To Me.cbbDepotId.Items.Count
s = Me.cbbDepotId.Items(i)("仓库名")
If s.Trim = Me.dtOrderList.Rows(iRow)("仓库") Then
Me.cbbDepotId.SelectedIndex = i
Exit For
End If
Next
End If
End Sub
Private Function ValidateNew() As Boolean
If txbSupplyId.Text.Trim.Length = 0 _
Or txbGoodsId.Text.Trim.Length = 0 Then
Return False
End If
If txbGoodsCount.Text.Trim.Length = 0 Or _
txbPrice.Text.Trim.Length = 0 Then
Return False
End If
Return True
End Function
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -