Foxtable(狐表)用户栏目专家坐堂 → 关于行数据设为0的问题


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

主题:关于行数据设为0的问题

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
关于行数据设为0的问题  发帖心情 Post By:2024/6/1 13:43:00 [只看该作者]

以下代码我的目标是实现当下达计划后,自动将T_采购单的Current("分配数量")设为0,避免重复下计划,但我尝试几次后,发现根本没有用,不知道是哪里出问题,请版主修改:
 Case "计划下达"
        Tables("T_采购单").Current.Load
        If Tables("T_采购单").Current("分配数量")>0 Then
            cmd.CommandText = "EXEC P_采购分配扣款 ?"
            cmd.Parameters.Add("@采购ID",Tables("T_采购单").Current("采购ID"))
            Dim dt As DataTable = cmd.ExecuteReader
            Dim id As Integer = DataTables("T_计划单").Compute("Max(提货单编号)")
            Dim Filter As String = "[提货单编号] > " & id
            DataTables("T_计划单").AppendLoad(Filter, False)
            With  Tables("调度分配_Table2")
                .Position = .Rows.Count + 1
            End With
            If Tables("T_计划单").Current("下单单位")="" Then ‘将存储过程没有执行的地方通过事件执行
                Tables("T_计划单").Current("下单单位")= Tables("T_采购单").Current("采购单位")
                Tables("T_计划单").Current("下单单位ID")=Tables("T_采购单").Current("采购单位ID")
                Tables("T_采购单").Current("分配数量")=0 '下达计划后将分配数量设为0,避免重复下计划
            Else
                Return
            End If
        Else
            MessageBox.show("分配数量不允许为0,或已经分配,不允许重复分配,请重新分配数量","提示",MessageBoxButtons.OK)
            Return
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/1 13:57:00 [只看该作者]

代码在什么事件的?

调试
    Case "计划下达"
        Dim r As Row = Tables("T_采购单").Current
        msgbox(r("采购ID") & "," & r("分配数量"))
        r.Load
        msgbox(r("采购ID") & "," & r("分配数量"))
        If r("分配数量") > 0 Then
            cmd.CommandText = "EXEC P_采购分配扣款 ?"
            cmd.Parameters.Add("@采购ID", r("采购ID"))
            Dim dt As DataTable = cmd.ExecuteReader
            Dim id As Integer = DataTables("T_计划单").Compute("Max(提货单编号)")
            Dim Filter As String = "[提货单编号] > " & id
            DataTables("T_计划单").AppendLoad(Filter, False)
            msgbox("AppendLoad OK")
            With Tables("调度分配_Table2")
                .Position = .Rows.Count
            End With
            If Tables("T_计划单").Current.IsNull("下单单位") Then '将存储过程没有执行的地方通过事件执行
                Tables("T_计划单").Current("下单单位") = r("采购单位")
                Tables("T_计划单").Current("下单单位ID") = r("采购单位ID")
                r("分配数量") = 0 '下达计划后将分配数量设为0,避免重复下计划
                msgbox("分配数量=" & r("分配数量"))
            Else
                msgbox("Return 1 OK")
                Return
            End If
        Else
            MessageBox.show("分配数量不允许为0,或已经分配,不允许重复分配,请重新分配数量", "提示", MessageBoxButtons.OK)
            Return
        End If
End Select


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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2024/6/1 14:53:00 [只看该作者]

我明白了,位置放错了,我调整了,现在好了。感谢版主。

 回到顶部