Foxtable(狐表)用户栏目专家坐堂 → 求助:表事件中代码错误


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

主题:求助:表事件中代码错误

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
求助:表事件中代码错误  发帖心情 Post By:2015/7/30 14:06:00 [显示全部帖子]

BeforeDeleteDataRow  表事件中写入:


Dim drs As List (of DataRow) = DataTables("采购进货").Select("定额编码 = '" & e.DataRow("定额编码") & "' ")

If drs.Count > 0 Then

    Dim result As DialogResult = MessageBox.Show("此材料已被采购进货录入,是否删除对应采购进货明细后再删除本条材料?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)

    If result = dialogresult.no Then

        e.Cancel = True

    Else

        e.Cancel = True

        For Each dr As DataRow In drs

            Tables("采购订单").Filter = "'" & dr.GetParentRows & "'"

            Tables("采购订单").Sort = "进货日期 DESC"

            MainTable =Tables( "采购订单")

            Forms("采购订单").Open

        Next

    End If

End If


错误提示: Tables("采购订单").Filter = "'" & dr.GetParentRows & "'"  错了。



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


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

采购订单 中没有 :定额编码,列。
只有:采购进货(与采购订单关联)有,定额编码,列。

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 19:04:00 [显示全部帖子]

Tables("采购订单").Filter = "'" & dr.GetParentRows & "'"

是这样的,采购订单,只是订单;采购进货,就是订单明细。两个表用:订单编号,关联。
材料,中的一条材料如果要删除,我找出:采购进货(也就是订单明细)有没有输入:相同:定额编号,的明细。
采购进货,有这个明细,就不能在:材料,表中删除,要先删除:采购进货,中输入的明细。再删除这一条材料。
因为,我没有在窗口中显示单独的:采购进货,表,我想在:采购订单,表中,找出:含有这些:采购进货(明细)的订单。

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 19:07:00 [显示全部帖子]

当前表是:材料,表,与采购订单,与采购进货(即订单明细)无关联。
采购订单,与采购进货,有关联。

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 19:19:00 [显示全部帖子]

这个代码,错在哪里?
Tables("采购订单").Filter = "dr.GetParentRows"
提示错误。
BeforeDeleteDataRow 表事件中:
全部代码:
Dim drs As List (of DataRow) = DataTables("采购进货").Select("定额编码 = '" & e.DataRow("定额编码") & "' ")
If drs.Count > 0 Then
    Dim result As DialogResult = MessageBox.Show("此材料已被采购进货录入,是否删除对应采购进货明细后再删除本条材料?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
    If result = dialogresult.no Then
        e.Cancel = True
    Else
        e.Cancel = True
        For Each dr As DataRow In drs
            Tables("采购订单").Filter = "dr.GetParentRows"
            Tables("采购订单").Sort = "进货日期 DESC"
            MainTable =Tables( "采购订单")
            Forms("采购订单").Open
        Next
    End If
End If
情况是这样的,我有:材料,采购订单,采购进货(即:订单明细)
采购订单,与采购进货,通过:定额编码,关联表;
材料,表与其它无关联。能过:定额编码,用表代码自动输入到其它表的。
我现在想,当材料表删除一条材料时,查找:采购进货有没有已经输入这条材料。如果有,则把含量有这些采购进货明细的采购订单,筛选出来。显示给操作者。 

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


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

  For Each dr As DataRow In drs
            Tables("采购订单").Filter = " 进货批次 = '" & dr("进货批次") & "'"
        Next
为什么,这条代码,只找出一行呢?(符合条件的行,不止一行)


全部代码是:
Dim drs As List (of DataRow) = DataTables("采购进货").Select(" 定额编码 = '" & e.DataRow("定额编码") & "' ")
If drs.Count > 0 Then
    Dim result As DialogResult = MessageBox.Show("此材料已被采购进货录入,是否删除对应采购进货明细后再删除本条材料?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
    If result = dialogresult.no Then
        e.Cancel = True
    Else
        e.Cancel = True
        Forms("采购订单").show
        For Each dr As DataRow In drs
            Tables("采购订单").Filter = " 进货批次 = '" & dr("进货批次") & "'"
        Next
        'Tables("采购订单").Sort = "进货日期 DESC"
    End If
End If

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 22:45:00 [显示全部帖子]

采购订单 与 采购进货   用:进货批次   连接的。(是关联表)
采购进货 与材料    用:定额编码   连接的(无关联表)

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
采购订单  与材料    无连接的列,也无关联表。
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/31 9:13:00 [显示全部帖子]

为什么要做一个: Dim filter As String = "1=2"  而不是:Tables("采购订单").Filter = " 进货批次 = '" & dr("进货批次") & "'"  呢?
       Dim filter As String = "1=2"
        For Each dr As DataRow In drs
            filter = " or 进货批次 = '" & dr("进货批次") & "'"
        Next
        Tables("采购订单").Filter = filter

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


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

按上面代码输入后,弹错。
图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/31 13:24:00 [显示全部帖子]

谢谢,牛叉,解决了。太感谢了。

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