以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95781)

--  作者:huaqing8828
--  发布时间:2017/2/5 11:35:00
--  求助代码
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "数量","现有库存"
        If dre.IsNull("数量") OrElse dr.IsNull("现有库存") Then
            dr("生产计划") = Nothing
        Else
            dr("生产计划") = (dr("数量") - dr("现有库存")) * 1.05
        End If
End Select
  
以上是生产批号为1702-01批的生产计划,1702-02、03批的生产计划我要求是dr("生产计划") = dr("数量") * 1.05上面的代码怎么改写

--  作者:有点色
--  发布时间:2017/2/5 14:09:00
--  

你的逻辑是什么?要总结清楚

 

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "数量","现有库存"
        If dr.IsNull("数量") OrElse dr.IsNull("现有库存") Then
            dr("生产计划") = Nothing
        Else
            If dr("生产计划") = "1702-01" Then
                dr("生产计划") = (dr("数量") - dr("现有库存")) * 1.05
            ElseIf dr("生产计划") = "1702-02" orelse dr("生产计划") = "1702-03" Then
                dr("生产计划") = dr("数量") * 1.05
            End If
        End If
End Select

[此贴子已经被作者于2017/2/5 14:10:59编辑过]

--  作者:huaqing8828
--  发布时间:2017/2/5 19:38:00
--  
老师,是这样的,每个月的第一“批生产计划”要减去库存数的,第二批以后的“生产计划”就不用减去库存数了,有一个“生产批号“列,来显示每月生产的次数。那么

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "数量","现有库存"
        If dr.IsNull("数量") OrElse dr.IsNull("现有库存") Then
            dr("生产计划") = Nothing
        Else
            If dr("生产计划") = "1702-01" Then
                dr("生产计划") = (dr("数量") - dr("现有库存")) * 1.05
            ElseIf dr("生产计划") = "1702-02" orelse dr("生产计划") = "1702-03" Then
                dr("生产计划") = dr("数量") * 1.05
            End If
        End If
End Select
上面的代码应该怎么改写

--  作者:有点蓝
--  发布时间:2017/2/6 8:46:00
--  
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "数量","现有库存"
        If dr.IsNull("数量") OrElse dr.IsNull("现有库存") Then
            dr("生产计划") = Nothing
        Else
            If dr("生产计划") Like "*-01" Then
                dr("生产计划") = (dr("数量") - dr("现有库存")) * 1.05
            Else
                dr("生产计划") = dr("数量") * 1.05
            End If
        End If
End Select

--  作者:huaqing8828
--  发布时间:2017/2/6 9:50:00
--  
老师,Dim dr As DataRow = e.DataRow提示这条代码出错
--  作者:有点色
--  发布时间:2017/2/6 10:21:00
--  
以下是引用huaqing8828在2017/2/6 9:50:00的发言:
老师,Dim dr As DataRow = e.DataRow提示这条代码出错

 

代码你要写到DataColChanged事件去。


--  作者:huaqing8828
--  发布时间:2017/2/6 12:59:00
--  
老师,我本来就是写在DataColChanged事件中,我现在把Dim dr As DataRow = e.DataRow这条代码写到
Select Case e.DataCol.Name
    Case "数量","现有库存"下面来了,问题解决了。
谢谢老师

--  作者:有点色
--  发布时间:2017/2/6 13:25:00
--  
 如果是提示你变量定义重复,那么,你可以把给变量dr换一个名字