以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 表格中的代码问题。(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72854)

--  作者:liuxianjie1980
--  发布时间:2015/8/7 16:06:00
--  [求助] 表格中的代码问题。(已解决)

写在datacolchanged中:

 

If e.DataRow("数量") = Nothing Then
    e.DataRow("出货完结") = Nothing
Else
    If e.DataRow("已出货量")< e.DataRow("数量") Then
        e.DataRow("出货完结")="否"
    Else
        If e.DataRow("已出货量")> e.DataRow("数量") Then
            e.DataRow("出货完结")="否"
            messagebox.show("请核查实际出货量","警告")
        Else
            e.DataRow("出货完结")="是"
        End If
    End If
End If

If e.DataRow("总价款") = Nothing Then
    e.DataRow("支付完结") = Nothing
Else
    If e.DataRow("已付货款")< e.DataRow("总价款") Then
        e.DataRow("支付完结")="否"
    Else
        If e.DataRow("已付货款")> e.DataRow("总价款") Then
            e.DataRow("出货完结")="否"
            messagebox.show("请核查已收取货款总额","警告")
        Else
            e.DataRow("支付完结")="是"
        End If
    End If
End If

Select Case e.DataCol.Name
    Case "出货完结","支付完结"
        If e.DataRow("出货完结")="是" AndAlso e.DataRow("支付完结")="是" Then
            e.DataRow("合同状态") ="执行完毕"
        Else
            e.DataRow("合同状态") ="执行中"
        End If
End Select

 

执行上述代码,“合同状态”列未能生效,即红色部分,黑色代码部分正常执行。

 

将红色代码换成如下:

 

 If e.DataRow("出货完结")="是" AndAlso e.DataRow("支付完结")="是" Then
            e.DataRow("合同状态") ="执行完毕"
        Else
            e.DataRow("合同状态") ="执行中"
 End If
则情况更糟,项目自动关闭。

 

请教!!!!

[此贴子已经被作者于2015/8/8 1:13:01编辑过]

--  作者:有点蓝
--  发布时间:2015/8/7 16:20:00
--  
看起来没问题啊,你在怀疑出问题的地方加个msgbox("信息")看看有没有执行
你如果不加   Case "出货完结","支付完结"的话,可能死循环了
[此贴子已经被作者于2015/8/7 16:23:08编辑过]

--  作者:大红袍
--  发布时间:2015/8/7 16:23:00
--  

1、黑色的代码,一定要加上列名的判断。

 

2、红色代码,是一定会执行的,你加入msgbox看一下


--  作者:大红袍
--  发布时间:2015/8/7 16:25:00
--  

Select Case e.DataCol.name
    Case "数量", "已出货量"
        If e.DataRow("数量") = Nothing Then
            e.DataRow("出货完结") = Nothing
        Else
            If e.DataRow("已出货量")< e.DataRow("数量") Then
                e.DataRow("出货完结")="否"
            Else
                If e.DataRow("已出货量")> e.DataRow("数量") Then
                    e.DataRow("出货完结")="否"
                    messagebox.show("请核查实际出货量","警告")
                Else
                    e.DataRow("出货完结")="是"
                End If
            End If
        End If
    Case "总价款"
        If e.DataRow("总价款") = Nothing Then
            e.DataRow("支付完结") = Nothing
        Else
            If e.DataRow("已付货款")< e.DataRow("总价款") Then
                e.DataRow("支付完结")="否"
            Else
                If e.DataRow("已付货款")> e.DataRow("总价款") Then
                    e.DataRow("出货完结")="否"
                    messagebox.show("请核查已收取货款总额","警告")
                Else
                    e.DataRow("支付完结")="是"
                End If
            End If
        End If
       
    Case "出货完结","支付完结"
        If e.DataRow("出货完结")="是" AndAlso e.DataRow("支付完结")="是" Then
            e.DataRow("合同状态") ="执行完毕"
        Else
            e.DataRow("合同状态") ="执行中"
        End If
End Select


 


--  作者:liuxianjie1980
--  发布时间:2015/8/7 16:32:00
--  
msgbox("信息"),如何写?写在什么位置?
--  作者:有点蓝
--  发布时间:2015/8/7 16:36:00
--  
调试技巧参考
http://www.foxtable.com/help/index.html?n=1485.htm
--  作者:liuxianjie1980
--  发布时间:2015/8/7 17:31:00
--  

    Case "总价款"
        If e.DataRow("总价款") = Nothing Then
            e.DataRow("支付完结") = Nothing
        Else
            If e.DataRow("已付货款")< e.DataRow("总价款") Then
                e.DataRow("支付完结")="否"
            Else
                If e.DataRow("已付货款")> e.DataRow("总价款") Then
                    e.DataRow("出货完结")="否"
                    messagebox.show("请核查已收取货款总额","警告")
                Else
                    e.DataRow("支付完结")="是"
                End If
            End If
        End If

 

上述代码未执行,何解?补充:已付货款为空值或填写一个数值都未能执行上述代码。

 

再次补充:把   Case "总价款"   改为  Case "总价款",“已付货款”
也不能执行代码

[此贴子已经被作者于2015/8/7 17:34:27编辑过]

--  作者:大红袍
--  发布时间:2015/8/7 17:37:00
--  

 Case "总价款"

 

改成

 

  Case "总价款", "已付货款"


--  作者:liuxianjie1980
--  发布时间:2015/8/8 0:47:00
--  
红袍兄:按照你改的代码也不行,我之前在帖子中已有说明
--  作者:liuxianjie1980
--  发布时间:2015/8/8 1:12:00
--  

红袍兄:

 

 Case "总价款"

 

改成

 

  Case  "已付货款"

 

执行完美!!