Foxtable(狐表)用户栏目专家坐堂 → BOM中如何防止子件与父件嵌套(OK)


  共有4086人关注过本帖树形打印复制链接

主题:BOM中如何防止子件与父件嵌套(OK)

帅哥哟,离线,有人找我吗?
HappyFt
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
BOM中如何防止子件与父件嵌套(OK)  发帖心情 Post By:2014/12/16 21:47:00 [只看该作者]

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20141216-3.jpg
图片点击可在新窗口打开查看

 

在表的事件datacolchanging中写了代码,但是不能检查出来,即先把第5行的父件编码修改成其他的,再改回A时应该提示有嵌套才可以。要怎么修改代码才可以?谢谢!


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom嵌套检查.table

[此贴子已经被作者于2014-12-17 23:38:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 22:07:00 [只看该作者]

Datacolchanged事件

 

'检查子件与父件是否嵌套
Select e.DataCol.name
    Case "产品编码","父件编码"
        If e.DataRow.IsNull("产品编码") = False AndAlso e.DataRow.IsNull("父件编码") = False Then
            Dim pdr As DataRow = e.DataRow
            Do While pdr IsNot Nothing
                pdr = e.DataTable.Find("父件编码 = '" & pdr("产品编码") & "'")
                If pdr IsNot Nothing Then
                    If pdr("产品编码") = e.DataRow("父件编码") Then
                        msgbox("嵌套")
                        e.DataRow("父件编码") = Nothing
                    End If
                End If
            Loop
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/12/16 22:11:00 [只看该作者]

谢谢甜老师,可以了,但是不能写在datacolchanging事件吗?有什么不同


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 22:15:00 [只看该作者]

 写在datacolchanging,就不能直接用 e.DataRow("父件编码"),要用 e.NewValue

 

 因为是两列,所以要分开写代码。


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/12/17 21:40:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:360截图20141217-1.jpg
图片点击可在新窗口打开查看

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom嵌套检查.table

 

如上图,当bom中的每个父件有两个以上子件时,原来表中datacolchanged中的代码就检查不出嵌套来。导致生成目录树死循环。删除第6行就可以正确生成目录树。

另外一个问题,为什么我的是永久开发版,这样出错后还是显示foxtable的图标出来呢?


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/12/17 21:54:00 [只看该作者]

第二个问题纠正,发布的程序运行出错是出现通用数据管理平台,不是foxtable,这时没有foxtable的痕迹


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/17 22:27:00 [只看该作者]

   
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom嵌套检查.table


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/12/17 23:38:00 [只看该作者]

谢谢甜老师,反复测试。好象可以了。

 回到顶部