以文本方式查看主题 - 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 -- 谢谢,没问题了 |