以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  别人家的BOM拆分  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79114)

--  作者:hanxuntx
--  发布时间:2015/12/24 15:26:00
--  别人家的BOM拆分
http://blog.vsharing.com/ESXERP/A1827142.html
--  作者:jspta
--  发布时间:2015/12/24 15:59:00
--  
设计一个表
ID FatherID ……
ID表示唯一编号,FatherID表示上级编号
好处是可以很容易更改上下级关系,只需要更新FatherID,实现集体迁移。但是如果没有使用递归,这个方法在实现目录树的时候会出现严重困难。但是如果是MSSQL2005以上数据库,采用WITH AS 语句实现递归,可以很轻松实现递归。从而变成1张视图表进行操作。十几行SQL语句代码大概就能实现了。

虽然我不懂BOM,但是看过很多实现的方法,搞了几个存储过程,绕了几个表,最终就是为了实现这个递归表。

--  作者:hanxuntx
--  发布时间:2015/12/24 17:22:00
--  
变成视图怎么编辑?
--  作者:jspta
--  发布时间:2015/12/24 17:30:00
--  
录入和展示分开。采用单条修改比较容易实现。大多数都是都是这么搞的。
如果要实现你说的编辑方法,我自己已经写了一套代码实现保存视图表的方法。简单的说就是,获取修改行,根据主键进行比对循环,保存,最后同步加载就能实现了。

数据库不用视图,这个等于在用EXCEL,数据库的关联性大打折扣了。

--  作者:hanxuntx
--  发布时间:2015/12/24 17:35:00
--  
 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=71474
已经实现,就是排序很容易错乱。还不太满意。

--  作者:jspta
--  发布时间:2015/12/25 9:28:00
--  
以下是引用hanxuntx在2015/12/24 17:35:00的发言:
 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=71474
已经实现,就是排序很容易错乱。还不太满意。

换一个思路,很容易实现你这个方案,减少大量代码判断。
1. 如果能够采用我所说的方法实现视图,那么实现的一部分代码就能避免了。
2. 采用多级折叠方案,这个可以使用flexGrid的树形结构,但是这个不能编辑。(参考飞以前发的文件管理)
3. 采用关联表形式进行下级录入,即每选中父行,显示下级关联,在子表中编辑,避免编辑问题。因为关联时通过ID与FatherID的,这样关联就很容易做。你犯了关联ID在一个字段里,维护就很困难。
4. 顺序采用SortKey,根据子表加载调整先后瞬时。因为父表是视图,可以将Sortkey重新命名定义,避免被强制排序,这样就没排序问题了