以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]简单问题,但不知道错在哪里?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86583)

--  作者:陈卫
--  发布时间:2016/6/21 9:12:00
--  [求助]简单问题,但不知道错在哪里?
专家好,下面这段编码,为什么不出结果?
 Select Case e.DataCol.Name
Case "本工序_投产数量_根" ,"本工序_日生产能力_根"
        If e.DataRow.IsNull("本工序_投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
            e.DataRow("本工序_生产周期_天")=Nothing
        Else
            e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_投产数量_根") / e.DataRow("本工序_日生产能力_根")\'计算D列的代码
        End If
End Select
我分别在"本工序_投产数量_根"中输入10000,在"本工序_日生产能力_根")中输入4000,在"本工序_生产周期_天"中没有结果显示,错在哪里?

--  作者:大红袍
--  发布时间:2016/6/21 9:14:00
--  

1、代码要写到DataColChanged事件

 

2、你那两列,不能是表达式列,必须是数据列。


--  作者:陈卫
--  发布时间:2016/6/21 9:27:00
--  
谢谢专家,有一列是表达式列,忽视了
--  作者:陈卫
--  发布时间:2016/6/21 9:47:00
--  
经过修改,编码如下:
Select Case e.DataCol.Name
 Case "本工序_投产数量_根" ,"本工序_日生产能力_根","交付数量_根","库存数量_根"
        If e.DataRow.IsNull("交付数量_根") Then
            e.DataRow("本工序_投产数量_根")=Nothing
        Else
            If e.DataRow.IsNull("库存数量_根") Then
                e.DataRow("库存数量_根")=0
                e.DataRow("本工序_投产数量_根") = e.DataRow("交付数量_根") - e.DataRow("库存数量_根")\'
            End If
            If e.DataRow.IsNull("本工序_投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
                e.DataRow("本工序_生产周期_天")=Nothing
                e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_投产数量_根") / e.DataRow("本工序_日生产能力_根")
            End If
        End If
End Select
前面都没有问题,可是当分别在"本工序_投产数量_根"中输入10000,在"本工序_日生产能力_根")中输入4000,在"本工序_生产周期_天"中显示为0.00,应该是2.50才对,我找不到错在哪里?

--  作者:大红袍
--  发布时间:2016/6/21 9:50:00
--  
Select Case e.DataCol.Name
    Case "本工序_投产数量_根" ,"本工序_日生产能力_根","交付数量_根","库存数量_根"
        If e.DataRow.IsNull("交付数量_根") Then
            e.DataRow("本工序_投产数量_根")=Nothing
        Else
            If e.DataRow.IsNull("库存数量_根") Then
                e.DataRow("库存数量_根")=0
            Else
                e.DataRow("本工序_投产数量_根") = e.DataRow("交付数量_根") - e.DataRow("库存数量_根")\'
            End If
            If e.DataRow.IsNull("本工序_投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
                e.DataRow("本工序_生产周期_天")=Nothing
            Else
                e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_投产数量_根") / e.DataRow("本工序_日生产能力_根")
            End If
        End If
End Select

--  作者:陈卫
--  发布时间:2016/6/21 9:53:00
--  
谢谢,没问题了