以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助狐爸爸引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16112)

--  作者:healthy02
--  发布时间:2012/2/2 18:20:00
--  求助狐爸爸引用
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:投标计算软件.rar

 1.我想要投标详细表中的单价列引用产品总表中的单价,当投标详细表中的"品名描述","牌号材质","厚度","宽度"都和产品总表中的相关列一样时,引用产品总表中的单价给投标详细表中的单价列。
2.当产品总表中的单价改变时(因为有时要单价市场浮动),已引用的投标材料的单价不会改变。


发现和有个人的很像,但我把他文件拷来后相关列名改了还是失败

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "品名描述","牌号材质","厚度","宽度"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "品名描述 = \'" &dr1 "品名描述") & "\' And 牌号材质 = \'" & dr1("牌号材质") & "\' And 厚度 = " & dr1("厚度") & " And 宽度  = \'" & dr1("宽度") & "\'"
        dr2 = DataTables("单价").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("单价") = dr2("单价")
        End If
End Select

[此贴子已经被作者于2012-2-3 10:55:02编辑过]

--  作者:healthy02
--  发布时间:2012/2/4 20:17:00
--  
 自己换思路了。。
--  作者:chan1997
--  发布时间:2012/2/5 17:48:00
--  
DataColChanged事件中设置如下代码:
Select Case e.DataCol.Name
    Case "品名描述","牌号材质","厚度","宽度"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("品名描述") OrElse dr.IsNull("牌号材质") OrElse dr.IsNull("宽度") OrElse dr.IsNull("厚度") Then
            dr("单价") = Nothing
        Else
            Dim filter As String
            filter = "品名描述 = \'" & dr("品名描述") & "\' And 牌号材质 = \'" & dr("牌号材质") & "\' And 宽度 = \'" & dr("宽度") & "\' And 厚度 = \'" & dr("厚度") & "\'"
            pr = DataTables("产品总表").Find(filter)
            If pr IsNot Nothing Then
                dr("单价") = pr("单价")
            End If
        End If
End Select