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


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

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

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望: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 & "'"  错了。



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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2015/7/30 14:43:00 [只看该作者]

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
        Tables("采购订单").Filter = "定额编码 = '" & e.DataRow("定额编码") & "'"
        Tables("采购订单").Sort = "进货日期 DESC"
        MainTable =Tables( "采购订单")
        Forms("采购订单").Open
    End If
End If

 


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 17:00:00 [只看该作者]

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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/7/30 17:04:00 [只看该作者]

你下面这行代码的意思是什么?

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

整个代码的设计思路和目的是什么?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2015/7/30 17:21:00 [只看该作者]

以下是引用yancheng在2015/7/30 17:00:00的发言:
采购订单 中没有 :定额编码,列。
只有:采购进货(与采购订单关联)有,定额编码,列。

 

当前表与采购订单的关联列是什么?


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 19:04:00 [只看该作者]

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

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

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/7/30 19:07:00 [只看该作者]

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

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望: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
情况是这样的,我有:材料,采购订单,采购进货(即:订单明细)
采购订单,与采购进货,通过:定额编码,关联表;
材料,表与其它无关联。能过:定额编码,用表代码自动输入到其它表的。
我现在想,当材料表删除一条材料时,查找:采购进货有没有已经输入这条材料。如果有,则把含量有这些采购进货明细的采购订单,筛选出来。显示给操作者。 

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/7/30 20:46:00 [只看该作者]

 那么二楼c版的代码没有错。

既然你都说了,两个表哦他能够过定额编码建立的关联,当然两个表都会有定额这一列。

 

实际上:

 

Tables("采购订单").Filter = "定额编码 = '" & e.DataRow("定额编码") & "'"

 

可以理解为:

 

Tables("子表").Filter = "子表关联列 = '" & e.DataRow("父表关联列") & "'"


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望: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

 回到顶部
总数 24 1 2 3 下一页