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


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

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

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
请教已录入数据禁止修改单价表产品名称、工序,还有组合合并问题  发帖心情 Post By:2020/2/22 12:19:00 [显示全部帖子]

密码是:111111

    我已在单价表写了代码,希望已录入数据禁止修改单价表产品名称、工序,但不能实现,我的代码要在加载数据源表数据后才能执行,如未加载数据该如何改?另生产进度汇总表窗口下的安产品工序按钮里的代码执行时意弹出

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在编写代码.rar


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200222115922.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 14:32:00 [显示全部帖子]

哦!忘了使用SQL统计数据不能使用表达式,谢谢。

禁止修改已引用的单价表产品名称、工序代码我写在单价表的表属性DataColChanged事件下,还有临时表统计表2的数据出来了,但生产进度汇总表的数据在没加载数据源表数据下不显示数据,应如何改为显?

[此贴子已经被作者于2020/2/22 14:33:13编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 15:27:00 [显示全部帖子]

我开始是把:
Select Case e.DataCol.name
    Case "产品名称","产品编号"
Dim dt As DataRow
Dim dt1 As DataRow
Dim dt2 As DataRow
Dim dt3 As DataRow
Dim dt4 As DataRow
Dim dt5 As DataRow
dt = DataTables("数据源表").find("产品名称 = '" & e.DataRow("产品名称") & "'" And "工序名称 = '" & e.DataRow("工序名称") & "'")
dt1 = DataTables("数据源表").find("产品编号 = '" & e.DataRow("产品编号") & "'"and "工序号 = '" & e.DataRow("工序号") & "'")
dt2 = DataTables("订单数量表").find("产品名称 = '" & e.DataRow("产品名称") & "'")
dt3 = DataTables("订单数量表").find("产品编号 = '" & e.DataRow("产品编号") & "'")
dt4 = DataTables("成品入进仓数").find("产品名称 = '" & e.DataRow("产品名称") & "'")
dt5 = DataTables("成品入进仓数").find("产品编号 = '" & e.DataRow("产品编号") & "'")
If dt IsNot Nothing Or dt1 IsNot Nothing Or dt2 IsNot Nothing Or dt3 IsNot Nothing Or dt4 IsNot Nothing Or dt5 IsNot Nothing Then
    e.Cancel = True
End If
End Select
写在DataColChanging事件里,但不执行,后想想,我是在编辑后才判断是否允许编辑,如果没被引用,允许编辑的。

[此贴子已经被作者于2020/2/22 16:26:43编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 16:04:00 [显示全部帖子]

单价表里的产品名称、工序名称不是被数据源表、订单数量表作为统一名称、规范叫法在目录树中引用了吗?一旦修改单价表里的产品名称、生产工序,已结账引用的表由于没同步修改,就产生混乱,而且已打的单也不可能再改,故所有管理软件都是设置已引用的基本数据不允许修改,我这段代码的意思是,当数据源表的产品名称、工序名称或订单数量表的产品名称与单价表的产品名称、工序名称当前行相符(即要求为空),则取消编辑,否则允许编辑。
[此贴子已经被作者于2020/2/22 16:17:40编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 16:30:00 [显示全部帖子]

不能不让编辑,没被引用前允许编辑的。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 16:37:00 [显示全部帖子]

你的代码还有工序名称未被考虑,不能只考虑产品名称,否则一旦产品名称相同,全不能改了!车间生产去到工序的,我还漏了完工进仓产品也有引用单价表的数据,因些即使想删除数据后编辑,也要把全部引用过的数据删除。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 17:12:00 [显示全部帖子]

密码:111111

在单价表的表属性DataColChanging事件中写了这段代码:

Select Case e.DataCol.name
    Case "产品名称","工序名称"
        Dim dt As DataRow
        Dim dt2 As DataRow
        Dim dt4 As DataRow
        dt = DataTables("数据源表").find("产品名称 = '" & e.oldValue & "'" And "工序名称 = '" &  e.oldValue & "'")
        dt2 = DataTables("订单数量表").find("产品名称 = '" & e.oldValue   & "'")
        dt4 = DataTables("成品入进仓数").find("产品名称 = '" & e.oldValue & "'")
        If dt IsNot Nothing OrElse dt2 IsNot Nothing OrElse dt4 IsNot Nothing Then
            e.Cancel = True
        End If
    Case "产品编号","工序号"
        Dim dt1 As DataRow
        Dim dt3 As DataRow
        Dim dt5 As DataRow
        dt1 = DataTables("数据源表").find("产品编号 = '" & e.oldValue & "'" And "工序号 = '" &  e.oldValue & "'")
        dt3 = DataTables("订单数量表").find("产品编号 = '" & e.oldValue   & "'")
        dt5 = DataTables("成品入进仓数").find("产品编号 = '" & e.oldValue   & "'")
        If  dt1 IsNot Nothing OrElse dt3 IsNot Nothing OrElse dt5 IsNot Nothing Then
            e.Cancel = True
        End If
End Select

 

报错,当在我单价表中随意删除一个产品名称最后一个字符时报错,关闭报错窗口,没有执行不允许编辑代码。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在编写代码.rar


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 17:30:00 [显示全部帖子]

密码:111111

改为:

Select Case e.DataCol.name
    Case "产品名称","工序名称"
        Dim dt As DataRow
        Dim dt2 As DataRow
        Dim dt4 As DataRow
        dt = DataTables("数据源表").find("产品名称 = '" & e.DataRow("产品名称") & "'" And "工序名称 = '" & e.DataRow("工序名称") & "'")
        dt2 = DataTables("订单数量表").find("产品名称 = '" & e.DataRow("产品名称") & "'")
        dt4 = DataTables("成品入进仓数").find("产品名称 = '" & e.DataRow("产品名称") & "'")
        If dt IsNot Nothing OrElse dt2 IsNot Nothing OrElse dt4 IsNot Nothing Then
            e.Cancel = True
        End If
    Case "产品编号","工序号"
        Dim dt1 As DataRow
        Dim dt3 As DataRow
        Dim dt5 As DataRow
        dt1 = DataTables("数据源表").find("产品编号 = '" & e.DataRow("产品编号") & "'"and "工序号 = '" & e.DataRow("工序号") & "'")
        dt3 = DataTables("订单数量表").find("产品编号 = '" & e.DataRow("产品编号") & "'")
        dt5 = DataTables("成品入进仓数").find("产品编号 = '" & e.DataRow("产品编号") & "'")
        If  dt1 IsNot Nothing OrElse dt3 IsNot Nothing OrElse dt5 IsNot Nothing Then
            e.Cancel = True
        End If
End Select

还是出现上面的问题。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在编写代码.rar

[此贴子已经被作者于2020/2/22 17:31:09编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 17:41:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "产品名称","工序名称"
        Dim dt As DataRow
        Dim dt2 As DataRow
        Dim dt4 As DataRow
        dt = DataTables("数据源表").find("产品名称 = '" & e.DataRow("产品名称") & "' And 工序名称 = '" & e.DataRow("工序名称") & "'")
        dt2 = DataTables("订单数量表").find("产品名称 = '" & e.DataRow("产品名称") & "'")
        dt4 = DataTables("成品入进仓数").find("产品名称 = '" & e.DataRow("产品名称") & "'")
        If dt IsNot Nothing OrElse dt2 IsNot Nothing OrElse dt4 IsNot Nothing Then
            e.Cancel = True
        End If
    Case "产品编号","工序号"
        Dim dt1 As DataRow
        Dim dt3 As DataRow
        Dim dt5 As DataRow
        dt1 = DataTables("数据源表").find("产品编号 = '" & e.DataRow("产品编号") & "' And 工序号 = '" & e.DataRow("工序号") & "'")
        dt3 = DataTables("订单数量表").find("产品编号 = '" & e.DataRow("产品编号") & "'")
        dt5 = DataTables("成品入进仓数").find("产品编号 = '" & e.DataRow("产品编号") & "'")
        If  dt1 IsNot Nothing OrElse dt3 IsNot Nothing OrElse dt5 IsNot Nothing Then
            e.Cancel = True
        End If
End Select

 

改过来了,只是没报错而已,不能实现不允许编辑。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在编写代码.rar

密码:111111

[此贴子已经被作者于2020/2/22 17:42:51编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/22 17:53:00 [显示全部帖子]

哦,我知道什么原因了,这代码数据源表没加载数据前允许编辑,加载后不允许了,应判别后台是否有符合上列条件数据。


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