以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  对比取值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76637)

--  作者:sf020cf
--  发布时间:2015/11/2 16:44:00
--  对比取值

 


图片点击可在新窗口打开查看此主题相关图片如下:2015-11-02_160633.jpg
图片点击可在新窗口打开查看

已经得到各订单运费,接下来要比较得出最高运费 (前提条件是:同一个司机,同一部车 ,同一天出车日期),满足前提条件的情况下把运费进行对比得出最高运费 其他返回空值,

然后把当天订单的送货地址对比得出不重复的送货地址 (在不重复的送货地址订单的点费栏赋值:9M6的80      6M2/6M8 /7M6 的60  4M5的30  )如果运费栏已经有值则不需要在点费栏赋值

最终效果如下图:



图片点击可在新窗口打开查看此主题相关图片如下:2015-11-02_161739.jpg
图片点击可在新窗口打开查看

 

请问版主怎样用代码实现


--  作者:大红袍
--  发布时间:2015/11/2 17:14:00
--  
上传例子。
--  作者:sf020cf
--  发布时间:2015/11/2 17:43:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2_201511021743.zip

最后的截图是想要的结果.手动输入的 代码还没有
--  作者:大红袍
--  发布时间:2015/11/2 18:17:00
--  
Select Case e.DataCol.name
    Case "司机", "车牌", "出车日期"
        Dim filter As String = "司机 = \'" & e.DataRow("司机") & "\' and 车牌 = \'" & e.DataRow("车牌") & "\' and 出车日期 = #" & e.DataRow("出车日期") & "#"
        Dim drs As List(of DataRow) = e.DataTable.Select(filter)
        For Each dr As DataRow In drs
            If DataTables("价目表").DataCols.Contains("车型_" & e.DataRow("车型")) Then
                Dim jdrs As List(of DataRow) = DataTables("价目表").Select("项目 like \'%" & e.DataRow("项目") & "%\' and 城市 like \'%" & e.DataRow("城市") & "%\'")
                For Each jdr As DataRow In jdrs
                    If e.DataRow("地点") Like "*" & jdr("地点") & "*" Then
                        e.DataRow("运费") = jdr("车型_" & e.DataRow("车型"))
                        Exit For
                    End If
                Next
            End If
        Next
        drs = e.DataTable.Select(filter, "运费 desc")
        For i As Integer = 0 To drs.Count - 1
           
            Select Case drs(i)("车型")
                Case "9M6"
                    drs(i)("点费") = 80
                Case "6M2","6M8","7M6"
                    drs(i)("点费") = 60
                Case "4M5"
                    drs(i)("点费") = 30
            End Select
           
            If i = 0 Then
                drs(i)("点费") = Nothing
            Else
                drs(i)("运费") = Nothing
            End If
        Next
        For Each str As String In e.DataTable.GetValues("送货地址", filter)
            drs = e.DataTable.Select(filter & " and 送货地址 = \'" & str & "\'")
            For i As Integer = 0 To drs.Count - 1
                If i > 0 Then
                    drs(i)("点费") = Nothing
                End If
            Next
        Next
End Select