以文本方式查看主题 - 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 -- 对比取值
已经得到各订单运费,接下来要比较得出最高运费 (前提条件是:同一个司机,同一部车 ,同一天出车日期),满足前提条件的情况下把运费进行对比得出最高运费 其他返回空值, 然后把当天订单的送货地址对比得出不重复的送货地址 (在不重复的送货地址订单的点费栏赋值:9M6的80 6M2/6M8 /7M6 的60 4M5的30 )如果运费栏已经有值则不需要在点费栏赋值 最终效果如下图:
请问版主怎样用代码实现 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/2 17:14:00 -- 上传例子。 |
||||
-- 作者:sf020cf -- 发布时间:2015/11/2 17:43:00 --
最后的截图是想要的结果.手动输入的 代码还没有 |
||||
-- 作者:大红袍 -- 发布时间: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 |