以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教运费计算问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9240)

--  作者:caoxy
--  发布时间:2011/3/17 17:50:00
--  请教运费计算问题

If e.DataCol.Name = "驾驶员" Then
    Dim dr As DataRow
    dr = DataTables("参数").Find("驾驶员 = " & "\'" & e.DataRow("驾驶员") & "\'" )
    If dr IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("车号")= dr("车号")
        e.DataRow("车长")= dr("车长")
    End If
ElseIf e.DataCol.Name = "运输地点" Then
    Dim dr As DataRow
    dr = DataTables("参数").Find("运输地点 = " & "\'" & e.DataRow("运输地点") & "\'" )
    If dr IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("运费")= dr("运费")
    End If
End If
师傅你好:

上面代码有异常现象,主要体现在

1、运输地点改变,运费也改娈,但不是按照车长和地点所设定的价格。

2、驾驶员所对应的车长、车号改变,运费没有对应改变,

烦请师傅帮忙解决


--  作者:狐狸爸爸
--  发布时间:2011/3/17 17:54:00
--  

1、帖子的标题要简单描述问题。

2、如过是同一个问题,在原贴后面跟帖即可,不要重复发帖。

3、最好配合例表。

 

[此贴子已经被作者于2011-3-17 17:55:32编辑过]

--  作者:caoxy
--  发布时间:2011/3/17 18:15:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理.rar

出口处理表窗口下面,请师傅帮忙处理
--  作者:狐狸爸爸
--  发布时间:2011/3/17 18:31:00
--  
Dim dr1 As DataRow = e.DataRow
If e.DataCol.Name = "驾驶员" Then
    Dim dr2 As DataRow = DataTables("参数").Find("驾驶员 = " & "\'" & dr1("驾驶员") & "\'" )
    If dr2 IsNot Nothing \'如果找到, 则设置各列内容
        dr1("车号")= dr2("车号")
        dr1("车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运输地点" ,"车号", "车长"
        Dim dr2 As DataRow
        dr2 = DataTables("参数").Find("运输地点 = " & "\'" & dr1("运输地点") & "\' And 车长 = \'" & dr1("车长") & "\' And 车号 = \'" &  dr1("车号") & "\'" )
        If dr2 IsNot Nothing \'如果找到, 则设置各列内容
            dr1("运费")= dr2("运费")
        End If
End Select

--  作者:caoxy
--  发布时间:2011/3/17 19:02:00
--  

谢谢师傅,这个代码已试验成功,

出口处理窗口中还有一个二次运输,代码如何写,还是要请师傅呀


--  作者:狐狸爸爸
--  发布时间:2011/3/17 21:10:00
--  

同样设置代码即可:

 

Dim dr1 As DataRow = e.DataRow
If e.DataCol.Name = "驾驶员" Then
    Dim dr2 As DataRow = DataTables("参数").Find("驾驶员 = " & "\'" & dr1("驾驶员") & "\'" )
    If dr2 IsNot Nothing \'如果找到, 则设置各列内容
        dr1("车号")= dr2("车号")
        dr1("车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运输地点" ,"车号", "车长"
        Dim dr2 As DataRow
        dr2 = DataTables("参数").Find("运输地点 = " & "\'" & dr1("运输地点") & "\' And 车长 = \'" & dr1("车长") & "\' And 车号 = \'" &  dr1("车号") & "\'" )
        If dr2 IsNot Nothing \'如果找到, 则设置各列内容
            dr1("运费")= dr2("运费")
        End If
End Select
If e.DataCol.Name = "二次运输" Then
    Dim dr2 As DataRow = DataTables("参数").Find("驾驶员 = " & "\'" & dr1("二次运输") & "\'" )
    If dr2 IsNot Nothing \'如果找到, 则设置各列内容
        dr1("二次车号")= dr2("车号")
        dr1("二次车长")= dr2("车长")
    End If
End If
Select Case e.DataCol.Name
    Case  "运送地点" ,"二次车号", "二次车长"
        Dim dr2 As DataRow
        dr2 = DataTables("参数").Find("运输地点 = " & "\'" & dr1("运送地点") & "\' And 车长 = \'" & dr1("二次车长") & "\' And 车号 = \'" &  dr1("二次车号") & "\'" )
        If dr2 IsNot Nothing \'如果找到, 则设置各列内容
            dr1("二次运费")= dr2("运费")
        End If
End Select

[此贴子已经被作者于2011-3-17 21:14:02编辑过]

--  作者:caoxy
--  发布时间:2011/3/18 7:23:00
--  

谢谢


--  作者:blackzhu
--  发布时间:2011/3/18 10:06:00
--  

dr2 = DataTables("参数").Find("运输地点 = " & "\'" & dr1("运输地点") & "\' And 车长 = \'" & dr1("车长") & "\' And 车号 = \'" &  dr1("车号") & "\'" )

 

在这句代码中把条件加多就可以了.