Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树生成数据表


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

主题:[求助]目录树生成数据表

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


加好友 发短信
等级:童狐 帖子:226 积分:1655 威望:0 精华:0 注册:2015/11/26 16:03:00
[求助]目录树生成数据表  发帖心情 Post By:2016/11/10 20:28:00 [只看该作者]

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


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:226 积分:1655 威望:0 精华:0 注册:2015/11/26 16:03:00
  发帖心情 Post By:2016/11/11 8:22:00 [只看该作者]

老师,材料类别和物料种类变了以后重新从1开始编号怎么写

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/11/11 9:00:00 [只看该作者]

 参考这种方式吧

 

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


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


加好友 发短信
等级:童狐 帖子:226 积分:1655 威望:0 精华:0 注册:2015/11/26 16:03:00
  发帖心情 Post By:2016/11/11 15:29:00 [只看该作者]

老师,请教一下类别编号怎么写,种类编号已经实现了

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/11 15:48:00 [只看该作者]

1楼的方式还是4楼的方式,不管是那种原理都一样的,计算的时候也就多一个条件少一个条件的问题

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


加好友 发短信
等级:童狐 帖子:226 积分:1655 威望:0 精华:0 注册:2015/11/26 16:03:00
  发帖心情 Post By:2016/11/11 15:53:00 [只看该作者]

你写的那种

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:226 积分:1655 威望:0 精华:0 注册:2015/11/26 16:03:00
  发帖心情 Post By:2016/11/12 7:39:00 [只看该作者]

谢谢,老师

 回到顶部