Foxtable(狐表)用户栏目专家坐堂 → 代码问题


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

主题:代码问题

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


加好友 发短信
等级:幼狐 帖子:139 积分:1110 威望:0 精华:0 注册:2013/10/9 11:32:00
代码问题  发帖心情 Post By:2014/3/26 8:38:00 [只看该作者]

请教高手:
两个表:材料入库表,库存材料表,材料入库表的数据复制到材料库存表,以入库单号作为限制条件,下面的代码有问题 ,不执行复制
请教:我哪里写错了,谢谢

'复制数据到库存表
    If e.DataCol.Name = "入库单号" Then
        Dim dh As DataRow
        dh = DataTables("库存材料表").Find("[入库单号] = '" & e.NewValue & "'")
        If dh IsNot Nothing Then
            Return  
        End If
    If dh Is Nothing Then
        If e.DataCol.Name = "审核" AndAlso e.DataRow("审核") = True Then
            Dim nma() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} 'A表数据来源列
            Dim nmb() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} 'B表数据接收列
            Dim dr As DataRow = DataTables("库存材料表").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = e.DataRow(nma(i))
            Next
        End If
    End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/26 8:41:00 [只看该作者]

说明有找到对应的行吧,上个例子看看.

或者自己利用这个方法调试一下看看.http://www.foxtable.com/help/topics/1485.htm

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


加好友 发短信
等级:幼狐 帖子:139 积分:1110 威望:0 精华:0 注册:2013/10/9 11:32:00
  发帖心情 Post By:2014/3/26 8:45:00 [只看该作者]

测试了,return  跳出,不执行下面代码

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/26 8:47:00 [只看该作者]

那不就印证了我2楼的回复么. 怎么只看后半句不看前半句?

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


加好友 发短信
等级:幼狐 帖子:139 积分:1110 威望:0 精华:0 注册:2013/10/9 11:32:00
  发帖心情 Post By:2014/3/26 9:02:00 [只看该作者]

不好意思,我还是没搞明白

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/26 9:06:00 [只看该作者]

说明有找到对应的行,  这个很难理解吗?

你自己写的IF判断  If dh IsNot Nothing Then   如果有找到行就 return 


这.... 
不好意思,我没有办法想得出应该怎样解释才能让你明白了.  

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/26 9:07:00 [只看该作者]

代码难道不是你写的吗? 如果是这样的话可以理解你为什么不明白.

原因是库存表有相同入库单号的行,所以执行return了.

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/26 9:08:00 [只看该作者]

If e.DataCol.Name = "入库单号" Then
    Dim dh As DataRow
    dh = DataTables("库存材料表").Find("[入库单号] = '" & e.NewValue & "'")
    If dh IsNot Nothing Then
        Return
    End If
End If
If e.DataCol.Name = "审核" AndAlso e.DataRow("审核") = True Then
    Dim nma() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} 'A表数据来源列
    Dim nmb() As String = {"物料代码","物料名称","规格型号","仓库代码","仓库名称","常用计量单位","材料单价","入库数量","入库金额","入库日期","入库单号"} 'B表数据接收列
    Dim dr As DataRow = DataTables("库存材料表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End If

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


加好友 发短信
等级:幼狐 帖子:139 积分:1110 威望:0 精华:0 注册:2013/10/9 11:32:00
  发帖心情 Post By:2014/3/26 9:08:00 [只看该作者]

明白了,谢谢

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


加好友 发短信
等级:幼狐 帖子:139 积分:1110 威望:0 精华:0 注册:2013/10/9 11:32:00
  发帖心情 Post By:2014/3/26 9:11:00 [只看该作者]

再请教一下,我的库存表是空的

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