Foxtable(狐表)用户栏目专家坐堂 → 超出索引范围的问题


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

主题:超出索引范围的问题

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


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
超出索引范围的问题  发帖心情 Post By:2013/6/13 21:53:00 [显示全部帖子]

在表“库存透视及取货方案”的“出库数量”中输入“20”,在表“取货明细”中能正常显示取货数量和箱号,可是输入“21”或"22"就会报错。问题出在表“库存透视及取货方案”datacolchanged事件代码的“ Case "取货方案_1","产品条码" " 中,我已标明了位置。

请专家帮帮忙,指出问题在什么地方。先谢了!

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:例子.foxdb


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


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/6/14 16:17:00 [显示全部帖子]

    Case "取货方案_1","产品条码"                                                                             '错误代码起始
        Dim drs As List (Of DataRow)
        Dim dr As DataRow
        Dim dr1 As DataRow
        Dim Int As Integer = e.DataRow("取货方案_1")
        Dim Int1 As Integer
        Dim filter As String = "库存_库房号 ='1'  And 产品条码 = '" & e.DataRow("产品条码") & "'"
        Dim id As String = "And [_identify] <> -1"
        If e.DataRow.IsNull("取货方案_1") = False Then
            Do While Int > 0
                drs = DataTables("库存表").Select(filter & id & "And 库存数量 >= " & Int)
                Int1 = Math.Abs(drs(0)("库存数量") - Int)
                For i As Integer = 1 To drs.count - 1
                    Int1 = Math.Min(Int1,Math.Abs(drs(i)("库存数量") - Int))
                Next
                dr = DataTables("库存表").Find(filter & id & "And 库存数量 = " & Int + Int1)
                If dr IsNot Nothing
                    dr1 = DataTables("取货明细").AddNew()
                    dr1("取货_数量") = Int
                    dr1("取货_箱号") = dr("库存_装箱号")
                    Int = 0
                Else
                    drs = DataTables("库存表").Select(filter & id & "And 库存数量 < " & Int)
                    Int1 =Int - drs(0)("库存数量")
                    For i As Integer = 1 To drs.count - 1
                        Int1 = Math.Min(Int1,Int-drs(i)("库存数量"))
                    Next
                    dr = DataTables("库存表").Find(filter &  id & " And 库存数量 = " & Int - Int1)
                    If dr IsNot Nothing Then
                        dr1 = DataTables("取货明细").AddNew()
                        dr1("取货_数量") = dr("库存数量")
                        dr1("取货_箱号") = dr("库存_装箱号")
                        Int = Int1                       
                        If id = "And [_identify] <> -1" Then
                            id = "And [_identify] <> " & dr("_identify")
                        Else
                            id = id & "And [_identify] <> " & dr("_identify")
                        End If
                    End If
                End If
            Loop
        End If  

 

那就有劳了!

 


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


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/6/14 17:17:00 [显示全部帖子]

那么,

是否加上

if drs.count > 0 then

判断一下就可以了?


 回到顶部