Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
scofields 发表于: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楼
有点蓝 发表于: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

3楼
scofields 发表于:2024/6/1 14:53:00
我明白了,位置放错了,我调整了,现在好了。感谢版主。
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.