以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86740)

--  作者:陈卫
--  发布时间:2016/6/24 15:55:00
--  [求助]
请问专家,下面代码为什么不输出结果?蓝色部分是不是不对?
 If e.DataRow.IsNull("本工序_应投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
     e.DataRow("本工序_生产周期_天")=Nothing
     Else
     If e.DataRow.IsNull("本工序_设备_投入数量") Then
          e.DataRow("本工序_设备_投入数量")=1
          Else
          e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_应投产数量_根") /( e.DataRow("本工序_日生产能力_根") * e.DataRow("本工序_设备_投入数量"))
      End If
End If


--  作者:大红袍
--  发布时间:2016/6/24 16:11:00
--  

加上msgbox,看弹出什么

 

msgbox(1)
If e.DataRow.IsNull("本工序_应投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
    e.DataRow("本工序_生产周期_天")=Nothing
Else
msgbox(2)
    If e.DataRow.IsNull("本工序_设备_投入数量") Then
msgbox(3)
        e.DataRow("本工序_设备_投入数量")=1
    Else
msgbox(4 & " " & e.DataRow("本工序_日生产能力_根") & " " & e.DataRow("本工序_设备_投入数量"))
        e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_应投产数量_根") /( e.DataRow("本工序_日生产能力_根") * e.DataRow("本工序_设备_投入数量"))
    End If
End If


--  作者:陈卫
--  发布时间:2016/6/24 16:42:00
--  
好像是蓝色部分有问题,怎么改?
 Case "本工序_日生产能力_根","包装工序_需要数量_根","本工序_库存在制品_根","本工序_废品损失率_百分比"
        If e.DataRow.IsNull("包装工序_需要数量_根") Then
            e.DataRow("本工序_应投产数量_根")=Nothing
        Else
            If e.DataRow.IsNull("本工序_库存在制品_根") Then
                e.DataRow("本工序_库存在制品_根")=0
            Else
                If e.DataRow.IsNull("本工序_废品损失率_百分比") Then
                    e.DataRow("本工序_废品损失率_百分比")=0
                Else
                    e.DataRow("本工序_应投产数量_根") = e.DataRow("包装工序_需要数量_根")*(e.DataRow("本工序_废品损失率_百分比")+1) - e.DataRow("本工序_库存在制品_根")\'
                End If
            
                If e.DataRow.IsNull("本工序_应投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
                        e.DataRow("本工序_生产周期_天")=Nothing
                Else
                     If e.DataRow.IsNull("本工序_设备_投入数量") Then
                            e.DataRow("本工序_设备_投入数量")=1
                     Else
                            e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_应投产数量_根") /( e.DataRow("本工序_日生产能力_根") * e.DataRow("本工序_设备_投入数量"))
                     End If
                End If
            End If
        End If


--  作者:大红袍
--  发布时间:2016/6/24 17:08:00
--  

呃,试试

 

If e.DataRow("本工序_应投产数量_根") = 0 OrElse e.DataRow("本工序_日生产能力_根") = 0 Then


--  作者:陈卫
--  发布时间:2016/6/24 17:09:00
--  
按照2楼办法,第一次显示1,确定后第二次显示2,确定后第三次显示3,确定后还是没有"本工序_生产周期_天"的结果
--  作者:大红袍
--  发布时间:2016/6/24 17:11:00
--  

 

If e.DataRow("本工序_应投产数量_根") = 0 OrElse e.DataRow("本工序_日生产能力_根") = 0 Then
    e.DataRow("本工序_生产周期_天")=Nothing
Else
    If e.DataRow.IsNull("本工序_设备_投入数量") Then
        e.DataRow("本工序_设备_投入数量")=1
    End If
    e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_应投产数量_根") /( e.DataRow("本工序_日生产能力_根") * e.DataRow("本工序_设备_投入数量"))
End If


--  作者:陈卫
--  发布时间:2016/6/24 17:14:00
--  
按照4楼的办法,结果同5楼一样
--  作者:大红袍
--  发布时间:2016/6/24 17:15:00
--  
看6楼
--  作者:陈卫
--  发布时间:2016/6/24 17:25:00
--  
蓝色部分没有改,按照6楼办法,改了红色部分。问题得到解决,谢谢专家!!
 If e.DataRow.IsNull("本工序_应投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
       e.DataRow("本工序_生产周期_天")=Nothing
 Else
       If e.DataRow.IsNull("本工序_设备_投入数量") Then
       e.DataRow("本工序_设备_投入数量")=1
       End If
       e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_应投产数量_根") /( e.DataRow("本工序_日生产能力_根") * e.DataRow("本工序_设备_投入数量"))      
End If

--  作者:754169574
--  发布时间:2016/6/24 21:28:00
--  

excel 是2007版,foxtable 2016版
执行导入时出错:
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.6.20.1
错误所在事件:
详细错误信息:
Microsoft Jet 数据库引擎找不到对象\'明广报价2015\'。请确定对象是否存在,并正确地写出它的名称和路径。

\'合并Excel文件:
Dim mg As New Merger
mg.SourcePath = "c:\\明广报价2015.xls"
mg.Format = "excel"
mg.SourceTableName = "明广报价2015$"
mg.DataTableName = "明广报价2015"
mg.Merge()