请教一下,体积和重量两列比选大的数据填入计费吨,然后后三列的数据计算是以计费吨为基数乘以另一张表对应的参数值,而且这三列只能选择一列显示数据,请高手给改下代码吧,现在后面三列不计算。Select Case e.DataCol.name
Case "体积m3","重量t"
If e.DataRow.Isnull("体积m3") = True AndAlso e.DataRow("重量t") = True Then
e.DataRow("计费吨") = Nothing '2个要比较的列都为空,则接受列为空
Else
If e.DataRow("体积m3") >= e.DataRow("重量t") Then
e.DataRow("计费吨") = e.DataRow("体积m3")
Else
e.DataRow("计费吨") = e.DataRow("重量t")
End If
End If
Case "计费吨"
If e.NewValue IsNot Nothing Then
Dim nms() As String = {"国内费用_港杂费_散装","国内费用_港杂费_集装箱20GP","国内费用_港杂费_集装箱40GP"}
For Each nm As String In nms
If nm <> e.DataCol.Name Then
e.DataRow(nm) = Nothing
End If
Next
Dim dr As DataRow = DataTables("调遣费参数表").find("参数名 = '国内港杂费 散装'") '一般是要查找具体的参数所在行
If dr IsNot Nothing Then
e.DataRow("国内费用_港杂费_散装") = e.DataRow("计费吨") * dr("值")
End If
Dim ar As DataRow = DataTables("调遣费参数表").find("参数名 = '国内港杂费 集装箱(20GP)'") '一般是要查找具体的参数所在行
If ar IsNot Nothing Then
e.DataRow("国内费用_港杂费_集装箱20GP") = e.DataRow("计费吨") * ar("值")
End If
Dim cr As DataRow = DataTables("调遣费参数表").find("参数名 = '国内港杂费 集装箱(40GP)'") '一般是要查找具体的参数所在行
If cr IsNot Nothing Then
e.DataRow("国内费用_港杂费_集装箱40GP") = e.DataRow("计费吨") * cr("值")
End If
End If
End Select