以文本方式查看主题

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

--  作者:陈卫
--  发布时间:2016/6/24 9:37:00
--  [求助]
请教专家,
图片点击可在新窗口打开查看此主题相关图片如下:错误信息1.bmp
图片点击可在新窗口打开查看
这是怎么回事啊,在《使用指南》找了好久都找不到错误是什么!
在编码中("本工序_废品损失率_百分比") 是"拉动排产计划_高频"表中的一列,设置为单精度小数,最大位数4,显示百分比,数值列。列中调用"废品损失率表"中("工序_高频")列的数值,("工序_高频")列的设置同("本工序_废品损失率_百分比")列完全一致。

--  作者:大红袍
--  发布时间:2016/6/24 9:38:00
--  
 贴出代码
--  作者:陈卫
--  发布时间:2016/6/24 9:44:00
--  
前后的代码略去,中间涉及到的代码如下
 略
Case "品种_杆径","品种_长度","品种_材质"
        Dim dc As DataRow = e.DataRow
        Dim pc As DataRow
        Dim filter1 As String
        Dim filter2 As String
        filter1 = "品种_杆径 = \'" & dc("品种_杆径") & "\' And 品种_长度 = \'" & dc("品种_长度") & "\'"
        filter2 = "品种_杆径 = \'" & dc("品种_杆径") & "\' And 品种_材质 = \'" & dc("品种_材质") & "\'"
        pc = DataTables("工序能力表").Find(filter1)
        If pc IsNot Nothing Then
            If dc("品种_材质") = "30CrMoA" Then
                dc("本工序_日生产能力_根") = pc("日生产能力_高频_30CrMoA")
            Else
                dc("本工序_日生产能力_根") = pc("日生产能力_高频_20CrMoA")
            End If
        End If
        pc = DataTables("废品损失率表").Find(filter2)
        If pc IsNot Nothing Then
            dc("本工序_废品损失率_百分比") = pc("工序_高频")
        End If
 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("包装工序_需要数量_根")*(1+"本工序_废品损失率_百分比") - e.DataRow("本工序_库存在制品_根")\'
                End If
                If e.DataRow.IsNull("本工序_投产数量_根") OrElse e.DataRow.IsNull("本工序_日生产能力_根") Then
                    e.DataRow("本工序_生产周期_天")=Nothing
                Else
                    e.DataRow("本工序_生产周期_天") = e.DataRow("本工序_投产数量_根") / e.DataRow("本工序_日生产能力_根")\'计算D列的代码
                End If
            End If
        End If
    

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

(1+"本工序_废品损失率_百分比")

 

改成

 

(e.DataRow("本工序_废品损失率_百分比")+1)


--  作者:陈卫
--  发布时间:2016/6/24 9:54:00
--  
专家,改完后,表属性可以关闭,说明代码逻辑正确,但将表中行删除后,在重新增加行时,Foxtable突然关闭,试了几次都这样,怎么回事?
--  作者:大红袍
--  发布时间:2016/6/24 10:01:00
--  
 做实例发上来,你的代码应该写成死循环了。
--  作者:陈卫
--  发布时间:2016/6/24 10:06:00
--  
不知道怎么做实例,上传项目吧,问题代码在表“拉动排产计划_高频”的表属性DataColChanged事件中
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:陈卫
--  发布时间:2016/6/24 10:07:00
--  
用户陈卫,密码000
--  作者:大红袍
--  发布时间:2016/6/24 10:10:00
--  
 输入各列的值,只报错,不会退出啊。
--  作者:陈卫
--  发布时间:2016/6/24 10:15:00
--  
不要输入值,在表中增加行,到第五行时,应该出现从其他表中调用的数据,但这时候就退出了