以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]逻辑判断修正  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92267)

--  作者:xh2207
--  发布时间:2016/10/30 17:07:00
--  [求助]逻辑判断修正

在订单明细表中,

已完成逻辑:不允许同一订单号、品名、型号规格的出现,计量单位和单价是引用品名和规格得出,

问题:同一订单号、品名、型号规格出现虽能判断并删除品名和型号,但计量单位和单价依然存在。

请指教,谢谢!

\'判断同一订单号存在名称规格一样的材料

Select Case e.DataCol.name
    Case "订单号"
        If e.DataCol.Name= "订单号" Then
        Dim dr As DataRow = e.DataTable.Find("订单号=\'" & e.NewValue & "\' and 品名=\'" & e.DataRow("品名") & "\' and 型号规格=\'" & e.DataRow("型号规格") & "\'")
        If dr IsNot Nothing Then
        MessageBox.Show("1已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        e.Cancel = True
        End If
        End If
    Case "品名"
        If e.DataCol.Name= "品名" Then
            Dim dr As DataRow = e.DataTable.Find("品名=\'" & e.NewValue & "\' and 订单号=\'" & e.DataRow("订单号") & "\' and 型号规格=\'" & e.DataRow("型号规格") & "\'")
            If dr IsNot Nothing Then
                e.DataRow("品名")=Nothing
                MessageBox.Show("2同一订单号已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
                Return
            End If
        End If
       
    Case "型号规格"
        If e.DataCol.Name= "型号规格" Then
            Dim dr As DataRow = e.DataTable.Find("型号规格=\'" & e.NewValue & "\' and 订单号=\'" & e.DataRow("订单号") & "\' and 品名=\'" & e.DataRow("品名") & "\'")
            If dr IsNot Nothing Then
e.DataRow("品名")=Nothing
e.Cancel = True
                MessageBox.Show("3已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
               
                e.Cancel = True
                \'e.DataRow("品名")=Nothing
            End If
        End If
End Select

\'引用单价和计量单位
Select Case e.DataCol.Name
    Case "品名","型号规格"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("品名") Or dr.IsNull("型号规格") Then
            dr("单价") = Nothing
            dr("计量单位") = Nothing
        Else
            Dim filter As String
            filter = "品名 = \'" & dr("品名") & "\' And 型号规格 = \'" & dr("型号规格") & "\'"
            pr = DataTables("商品").Find(filter)
            If pr IsNot Nothing Then
                dr("单价") = pr("单价")
                dr("计量单位") = pr("计量单位")
               
            End If
        End If
End Select

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项6.zip


--  作者:有点蓝
--  发布时间:2016/10/31 9:01:00
--  
请不要重复发贴

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=92257