Foxtable(狐表)用户栏目专家坐堂 → [求助]代码修改求助,包括思路


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

主题:[求助]代码修改求助,包括思路

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 11:31:00 [显示全部帖子]

If e.DataCol.name = "确定" Then
    If e.DataRow("确定") = True Then
        Dim drs As List(of DataRow)
        drs = DataTables("库存明细表").Select ("物料编码 = '" & e.DataRow("物料编码") & "' and 库位编码 = '" & e.DataRow("库位编码") & "' And 提示 = '入库完成'","SN")
        If drs.Count > 0 Then
            For Each dr As DataRow In drs
                For i As Integer = 1 To e.DataRow("预配货数量")
                    Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew()
                    ndr("SN") = dr("SN")
                    ndr("物料编码") = dr("物料编码")
                    ndr("库位号") = dr("库位号")
                    ndr("库位编码") = dr("库位编码")
                    ndr("数量") = dr("数量")
                Next
            Next
        End If
    Else
        Dim drs As List(Of DataRow) = DataTables("配货筛选明细表").Select("物料编码 = '" & e.DataRow("物料编码") & "'")
        For i As Integer = drs.count - 1 To 0 Step -1
            If drs(i).RowState = DataRowState.Added Then
                drs(i).delete
            End If
        Next
    End If
End If

[此贴子已经被作者于2015/12/14 11:31:44编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 11:48:00 [显示全部帖子]

你说要增加多行啊

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 11:56:00 [显示全部帖子]

If e.DataCol.name = "确定" Then
    If e.DataRow("确定") = True Then
        Dim dr As DataRow
        dr = DataTables("库存明细表").find ("物料编码 = '" & e.DataRow("物料编码") & "' and 库位编码 = '" & e.DataRow("库位编码") & "' And 提示 = '入库完成'","SN")
        If dr IsNot Nothing Then
            For i As Integer = 1 To e.DataRow("预配货数量")
                Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew()
                ndr("SN") = dr("SN")
                ndr("物料编码") = dr("物料编码")
                ndr("库位号") = dr("库位号")
                ndr("库位编码") = dr("库位编码")
                ndr("数量") = dr("数量")
            Next
        End If
    Else
        Dim drs As List(Of DataRow) = DataTables("配货筛选明细表").Select("物料编码 = '" & e.DataRow("物料编码") & "'")
        For i As Integer = drs.count - 1 To 0 Step -1
            If drs(i).RowState = DataRowState.Added Then
                drs(i).delete
            End If
        Next
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 12:11:00 [显示全部帖子]

无语,没有问题。

 

不会做就上传实例。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 12:20:00 [显示全部帖子]

做例子发上来

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 14:54:00 [显示全部帖子]

请单独做一个例子发上来,说明逻辑。不需要上传整个项目啊,连接你的数据库很费事的啊。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 15:02:00 [显示全部帖子]

代码没有错,错就是你逻辑有错

 

你写的:确定去掉勾后,希望也是仅把增加的去掉。代码就是把你新增的,满足条件的行删除。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 15:08:00 [显示全部帖子]

要不你就加一列 标识列,然后写代码

 

If e.DataCol.name = "确定" Then
    If e.DataRow("确定") = True Then
        Dim dr As DataRow
        dr = DataTables("库存明细表").find ("物料编码 = '" & e.DataRow("物料编码") & "' and 库位编码 = '" & e.DataRow("库位编码") & "' And 提示 = '入库完成'","SN")
        If dr IsNot Nothing Then
            For i As Integer = 1 To e.DataRow("预配货数量")
                Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew()
                ndr("SN") = dr("SN")
                ndr("物料编码") = dr("物料编码")
                ndr("库位号") = dr("库位号")
                ndr("库位编码") = dr("库位编码")
                ndr("数量") = dr("数量")
                ndr("标志") = e.DataRow("_Identify")
            Next
        End If
    Else
        Dim drs As List(Of DataRow) = DataTables("配货筛选明细表").Select("物料编码 = '" & e.DataRow("物料编码") & "' and 标志 = '" & e.DataRow("_Identify") & "'")
        For i As Integer = drs.count - 1 To 0 Step -1
            'If drs(i).RowState = DataRowState.Added Then
            drs(i).delete
            'End If
        Next
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 15:28:00 [显示全部帖子]

看16楼,17楼。

 

慢的问题,是你数据表多以及数据多的缘故,也和你服务器的带宽有关。这个是无法用代码解决的。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/14 15:43:00 [显示全部帖子]

测试了一下连接你数据库,还是挺快的。

 

控制一下初始加载的数据

 

http://www.foxtable.com/help/topics/1998.htm

 

不要全部加载,因为你有很多地方重新load了,导致数据重复加载多次。

 

同时,看看 http://www.foxtable.com/help/topics/2730.htm

 


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