Foxtable(狐表)用户栏目专家坐堂 → 请教已录入数据禁止修改单价表产品名称、工序,还有组合合并问题


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

主题:请教已录入数据禁止修改单价表产品名称、工序,还有组合合并问题

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 13:41:00 [显示全部帖子]

1、单价表在什么地方写了禁止修改单价表产品名称、工序的代码?没看到

2、计划生产数是表达式列,不能在SQLGroupTableBuilder里使用的,改为

Dim g2 As New SQLGroupTableBuilder("统计表2", "订单数量表")
g2.Groups.AddDef("产品名称")
g2.Groups.AddDef("生产单号")
g2.Totals.AddExp("计划生产数","int([订单数量] * 1.02)")
dt = g2.Build(False)


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 15:00:00 [显示全部帖子]

首先DataColChanged事件没有e.Cancel用法。
其次一般权限控制在PrepareEdit,或者DataColChanging事件里处理。http://www.foxtable.com/webhelp/topics/0605.htm
不同事件有不同的用法,看清楚帮助说明再使用

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 15:33:00 [显示全部帖子]

没被引用是指什么?意思是如果这个单元格如果有值,就不引用其他表的数据,否则就引用?
[此贴子已经被作者于2020/2/22 15:33:51编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 15:35:00 [显示全部帖子]

没看懂这个代码要表示什么意思。使用文字详细说明一下

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 16:19:00 [显示全部帖子]

DataColChanging事件
Select Case e.DataCol.name
    Case "产品名称"
        Dim dt As DataRow
        Dim dt2 As DataRow
        dt = DataTables("数据源表").find("产品名称 = '" & e.oldValue & "'")
        dt2 = DataTables("订单数量表").find("产品名称 = '" & e.oldValue   & "'")
        If dt IsNot Nothing OrElse dt2 IsNot Nothing 
            e.Cancel = True
        End If
    Case "产品编号"
        Dim dt1 As DataRow
        Dim dt3 As DataRow
        dt1 = DataTables("数据源表").find("产品编号 = '" & e.oldValue & "'")
        dt3 = DataTables("订单数量表").find("产品编号 = '" & e.oldValue   & "'")
        If  dt1 IsNot Nothing OrElse dt3 IsNot Nothing Then
            e.Cancel = True
        End If
End Select
[此贴子已经被作者于2020/2/22 16:20:34编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 16:24:00 [显示全部帖子]

最合理的应该到prepareedit事件处理,直接不给编辑,而不是编辑完了再取消编辑

Select Case e.Col.Name
    Case "产品名称","产品编号"
        Dim dt As DataRow
        Dim dt2 As DataRow
        dt = DataTables("数据源表").find(e.Col.Name & " = '" & e.Row(e.Col.Name)  & "'")
        dt2 = DataTables("订单数量表").find(e.Col.Name & " = '" & e.Row(e.Col.Name)  & "'")
        If dt IsNot Nothing OrElse dt2 IsNot Nothing 
            e.Cancel = True
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 16:32:00 [显示全部帖子]

上面的代码只是被引用的才不能编辑,并不是所有都不能编辑,请测试过再说

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 16:45:00 [显示全部帖子]

还需要什么条件那就自己补上

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 17:18:00 [显示全部帖子]

不要加那么多多余的双引号,多个列不能使用oldValue 

dt = DataTables("数据源表").find("产品名称 = '" & e.DataRow("产品名称") & "' And 工序名称 = '" &  e.DataRow("工序名称 ") & "'")

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/22 17:36:00 [显示全部帖子]

不要加那么多多余的双引号!不要加那么多多余的双引号!不要加那么多多余的双引号!

dt = DataTables("数据源表").find("产品名称 = '" & e.DataRow("产品名称") & "' And 工序名称 = '" &  e.DataRow("工序名称 ") & "'")

 回到顶部
总数 11 1 2 下一页