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

📄 frmorderlist.vb

📁 VB.NET开发的进销存系统,数据库SQLSERVER
💻 VB
📖 第 1 页 / 共 3 页
字号:

        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 + -