Foxtable(狐表)用户栏目专家坐堂 → 关于产品编号 更新的问题


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

主题:关于产品编号 更新的问题

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
关于产品编号 更新的问题  发帖心情 Post By:2016/3/22 16:28:00 [显示全部帖子]

一个表是盘点库存表,一个材料表。
盘点库存表增加一个材料时,有一个:定额编码 。我增加一个订单时,订单表的DataColChanged事件写入了:
If e.DataCol.Name = "定额编码" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    cmd.C
    Dim dr As DataRow = e.DataRow
    cmd.CommandText = "SEL ECT * Fr om {材料} Where [定额编码] = '" & dr("定额编码") & "'"
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("账面库存") = dt.DataRows(0)("库存数量")
        dr("成本价") = dt.DataRows(0)("成本价")
    Else
        dr("账面库存") = Nothing
        dr("成本价") = Nothing
    End If
End If

我在材料表中DataColChanged事件写入了:
Select Case e.DataCol.Name
    Case "定额编码"
        Dim nm() As String = {“盘点明细”,"采购进货","入库明细","预算计划明细","需用计划明细","销售明细","直入直出明细"}
        For Each n As String In nm
            DataTables(n).ReplaceFor(e.DataCol.Name,e.NewValue,"定额编码 = '" & e.OldValue & "'")
        Next
End Select

问题是:如果材料表的定额编码发生变,触发了:盘点明细,表的定额编码。
这样,盘点明细的代码执行,就把:账面库存和成本价,给改了。
请问,这个怎么解决好?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/3/22 16:59:00 [显示全部帖子]

我将材料表改成下面代码:
Select Case e.DataCol.Name
    Case "定额编码"
        systemReady=False
        Dim nm() As String = {"采购进货","入库明细","预算计划明细","需用计划明细","销售明细","直入直出明细","盘点明细"}
        For Each n As String In nm
            DataTables(n).ReplaceFor(e.DataCol.Name,e.NewValue,"定额编码 = '" & e.OldValue & "'")
        Next
        systemReady=True
End Select

问题:systemReady=False不起作用。
盘点明细:的代码还是执行,而且是未找到:材料表的:定额编码。把成本价和库存数量 改成了:nothing,空值 。

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/3/22 17:17:00 [显示全部帖子]

老师,你看一下是不是关联表的原因?
我做实例太慢了。是的外部源:ASSEC,且数据多。能不好公开的,。还得删,你教我一个快的做实例的方法好吗?
图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/3/22 17:33:00 [显示全部帖子]

同步更新,删除后:

打不开系统 或打开出现:索引超出了数组界限。错误。


ctrl 按住不执行代码的方式,也打不开系统


.NET Framework 版本:2.0.50727.5483
Foxtable 版本:2016.3.9.1
错误所在事件:
详细错误信息:
索引超出了数组界限。

一点,确定,就关闭。
[此贴子已经被作者于2016/3/22 17:37:02编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/3/22 18:18:00 [显示全部帖子]

完美解决。谢谢。systemReady=False也自动起作用了。

好像跟:
把那个【同步更新关联列内容】的勾选去掉。没关系
[此贴子已经被作者于2016/3/22 18:18:52编辑过]

 回到顶部