Foxtable(狐表)用户栏目专家坐堂 → [求助] 表格中的代码问题。(已解决)


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

主题:[求助] 表格中的代码问题。(已解决)

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
[求助] 表格中的代码问题。(已解决)  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/7 16:20:00 [只看该作者]

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/7 16:23:00 [只看该作者]

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

 

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/7 16:32:00 [只看该作者]

msgbox("信息"),如何写?写在什么位置?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/7 16:36:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/7 17:37:00 [只看该作者]

 Case "总价款"

 

改成

 

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


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/8 0:47:00 [只看该作者]

红袍兄:按照你改的代码也不行,我之前在帖子中已有说明

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/8 1:12:00 [只看该作者]

红袍兄:

 

 Case "总价款"

 

改成

 

  Case  "已付货款"

 

执行完美!!


 回到顶部