以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]目录树生成数据表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92708)

--  作者:llh0824
--  发布时间:2016/11/10 20:28:00
--  [求助]目录树生成数据表
例子中,怎么自动生成编号(按上面的已经写好的那样),根据目录树生成表以后,分类代码根据物料分类生成,类别代码根据材料类别生成,物料种类根据种类代码生成
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb


--  作者:有点蓝
--  发布时间:2016/11/10 21:07:00
--  
DataColChanged事件

Select Case e.DataCol.Name
    Case "物料分类"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("分类编号") = Nothing \'那么清空此行单价列的内容
        Else
            Dim dr As DataRow
            \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr = e.DataTable.Find("[物料分类] = \'" & e.NewValue & "\' and [_Identify] <> " & e.DataRow("_Identify"))
            If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("分类编号") = dr("分类编号")
            Else
                e.DataRow("分类编号") = val(e.DataTable.Compute("max(分类编号)")) + 1
            End If
        End If
End Select

其它2种编码自己仿做

--  作者:llh0824
--  发布时间:2016/11/11 8:22:00
--  
老师,材料类别和物料种类变了以后重新从1开始编号怎么写
--  作者:有点色
--  发布时间:2016/11/11 9:00:00
--  

 参考这种方式吧

 

下载信息  [文件大小:324.0 KB  下载次数:13]
图片点击可在新窗口打开查看点击浏览该文件:数字级码生成.table


--  作者:llh0824
--  发布时间:2016/11/11 15:29:00
--  
老师,请教一下类别编号怎么写,种类编号已经实现了
--  作者:有点蓝
--  发布时间:2016/11/11 15:48:00
--  
1楼的方式还是4楼的方式,不管是那种原理都一样的,计算的时候也就多一个条件少一个条件的问题
--  作者:llh0824
--  发布时间:2016/11/11 15:53:00
--  
你写的那种
--  作者:有点蓝
--  发布时间:2016/11/11 16:47:00
--  
    Case "材料类别"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("类别编号") = Nothing \'那么清空此行单价列的内容
        Else
            Dim dr As DataRow
            \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr = e.DataTable.Find("[物料分类] = \'" & e.DataRow("物料分类") & "\' and 材料类别=\'" & e.NewValue & "\' And [_Identify] <> " & e.DataRow("_Identify"))
            If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("类别编号") = dr("类别编号")
            Else
                e.DataRow("类别编号") = val(e.DataTable.Compute("max(类别编号)","[物料分类] = \'" & e.DataRow("物料分类") & "\'")) + 1
            End If
        End If

--  作者:llh0824
--  发布时间:2016/11/12 7:39:00
--  
谢谢,老师