Foxtable(狐表)用户栏目专家坐堂 → [求助]关于条件判断问题?


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

主题:[求助]关于条件判断问题?

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


加好友 发短信
等级:幼狐 帖子:188 积分:1613 威望:0 精华:0 注册:2013/5/21 17:44:00
[求助]关于条件判断问题?  发帖心情 Post By:2014/8/22 8:42:00 [只看该作者]

我原来的代码是这样的,根据产品编号来判断,现在我想改成根据产品编号的前6位做判断如何修改代码?
If e.DataCol.Name = "本次数量" Then
    If e.DataRow.IsNull("中标工程名称") = False AndAlso e.DataRow.IsNull("产品编号") = False _
        AndAlso e.DataRow.IsNull("本次数量") = False AndAlso e.DataRow.IsNull("第几次采购") = False Then
        Dim sum As Double = e.DataTable.Compute("Sum(本次数量)","中标工程名称 = '" & e.DataRow("中标工程名称") & "' And 产品编号 = '" & _
              e.DataRow("产品编号") & "' And 第几次采购 <= '" & e.DataRow("第几次采购") & "'")
        e.DataRow("剩余数量") = e.DataRow("成本预算数量") - sum
       
    End If

End If
If e.DataCol.Name = "产品编号" Then
    Dim fdr As DataRow = DataTables("材料费预算表").Find("中标工程名称 = '" & e.DataRow("中标工程名称") & "' and 产品编号 = '" & e.NewValue & "'")
    If fdr IsNot Nothing Then
        e.DataRow("成本预算数量") = fdr("数量")
        e.DataRow("成本预算单价") = fdr("单价")
    Else
        fdr = DataTables("产品价格库").Find("产品编号 = '" & e.NewValue & "'")
        e.DataRow("成本预算数量") = 0
        If fdr IsNot Nothing Then
            e.DataRow("成本预算单价") = fdr("单价")
        End If
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/22 8:48:00 [只看该作者]

("SubString([产品编号],0,6) = '" & e.NewValue & "'")

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


加好友 发短信
等级:幼狐 帖子:188 积分:1613 威望:0 精华:0 注册:2013/5/21 17:44:00
  发帖心情 Post By:2014/8/22 9:12:00 [只看该作者]

修改后出错,哪里改错了?
If e.DataCol.Name = "本次数量" Then
    If e.DataRow.IsNull("中标工程名称") = False AndAlso e.DataRow.IsNull("SubString([产品编号],0,6)") = False _
        AndAlso e.DataRow.IsNull("本次数量") = False AndAlso e.DataRow.IsNull("第几次采购") = False Then
        Dim sum As Double = e.DataTable.Compute("Sum(本次数量)","中标工程名称 = '" & e.DataRow("中标工程名称") & "' And SubString([产品编号],0,6) = '" & _
              e.DataRow("SubString([产品编号],0,6)") & "' And 第几次采购 <= '" & e.DataRow("第几次采购") & "'")
        e.DataRow("剩余数量") = e.DataRow("成本预算数量") - sum
       
    End If

End If
If e.DataCol.Name = "SubString([产品编号],0,6)" Then
    Dim fdr As DataRow = DataTables("材料费预算表").Find("中标工程名称 = '" & e.DataRow("中标工程名称") & "' and SubString([产品编号],0,6) = '" & e.NewValue & "'")
    If fdr IsNot Nothing Then
        e.DataRow("成本预算数量") = fdr("数量")
        e.DataRow("成本预算单价") = fdr("单价")
    Else
        fdr = DataTables("产品价格库").Find("SubString([产品编号],0,6) = '" & e.NewValue & "'")
        e.DataRow("成本预算数量") = 0
        If fdr IsNot Nothing Then
            e.DataRow("成本预算单价") = fdr("单价")
        End If
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/22 9:13:00 [只看该作者]

出什么错?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/22 9:16:00 [只看该作者]

If e.DataCol.Name = "本次数量" Then
    If e.DataRow.IsNull("中标工程名称") = False AndAlso e.DataRow.IsNull("产品编号") = False _
        AndAlso e.DataRow.IsNull("本次数量") = False AndAlso e.DataRow.IsNull("第几次采购") = False Then
        Dim sum As Double = e.DataTable.Compute("Sum(本次数量)","中标工程名称 = '" & e.DataRow("中标工程名称") & "' And SubString([产品编号],0,6) = '" & _
              e.DataRow("产品编号") & "' And 第几次采购 <= '" & e.DataRow("第几次采购") & "'")
        e.DataRow("剩余数量") = e.DataRow("成本预算数量") - sum
      
    End If


End If
If e.DataCol.Name = "产品编号" Then
    Dim fdr As DataRow = DataTables("材料费预算表").Find("中标工程名称 = '" & e.DataRow("中标工程名称") & "' and SubString([产品编号],0,6) = '" & e.NewValue & "'")
    If fdr IsNot Nothing Then
        e.DataRow("成本预算数量") = fdr("数量")
        e.DataRow("成本预算单价") = fdr("单价")
    Else
        fdr = DataTables("产品价格库").Find("SubString([产品编号],0,6) = '" & e.NewValue & "'")
        e.DataRow("成本预算数量") = 0
        If fdr IsNot Nothing Then
            e.DataRow("成本预算单价") = fdr("单价")
        End If
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:188 积分:1613 威望:0 精华:0 注册:2013/5/21 17:44:00
  发帖心情 Post By:2014/8/22 10:52:00 [只看该作者]

出错提示
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140822105048.png
图片点击可在新窗口打开查看
我的编号格式是100105001,100105002,100105003
[此贴子已经被作者于2014-8-22 10:53:42编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/22 10:55:00 [只看该作者]

1、编号列,不能有空行的数据;

 

2、试试改成 SubString([产品编号],1,6)


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


加好友 发短信
等级:幼狐 帖子:188 积分:1613 威望:0 精华:0 注册:2013/5/21 17:44:00
  发帖心情 Post By:2014/8/22 11:11:00 [只看该作者]

现在不报错了,可是剩余数量的计算结果不对,不是[成本预算数量]-[前几次本次数量之和],而是剩余数量=成本预算数量。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/22 11:17:00 [只看该作者]

 

[此贴子已经被作者于2014-8-22 11:17:57编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/22 11:20:00 [只看该作者]

试试改成 SubString([产品编号],0,6)

 

如果不行,做个例子发上来看看。

 


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