Foxtable(狐表)用户栏目专家坐堂 → IF语句找错


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

主题:IF语句找错

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


加好友 发短信
等级:童狐 帖子:219 积分:1890 威望:0 精华:0 注册:2011/6/10 9:12:00
IF语句找错  发帖心情 Post By:2011/9/22 8:05:00 [只看该作者]

Dim r As Row = CurrentTable.Current
Dim v As Integer = r("消费单号")
Dim dr As DataRow = DataTables("客户消费单").Find("消费单号 = "  & v)
If r("数量") <= r("库存数量") Then
  If r("会员卡号") IsNot Nothing Then
    r("价格合计") = r("零售单价")*r("数量")
    r("会员价合计") = r("会员单价")*r("数量")
    r("打折后合计") = r("零售单价")*r("数量")*r("折扣")
    Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
    Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
    Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
    Forms("销售前台").Controls("TextBox12").value = dr("打折后合计") + dr("会员价合计")
    Else r("价格合计") = r("零售单价")*r("数量")
    r("会员价合计") = 0
    r("打折后合计") = 0
    Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
    Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
    Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
    Forms("销售前台").Controls("TextBox12").value = dr("价格合计")
    End If
Else
 CurrentTable.Current.DataRow.Load(False)
 Messagebox.Show("该商品库存数量不足!")
End If

 

 

这个代码有什么问题,为什么 在DATACOLCHANGED里面

 Else r("价格合计") = r("零售单价")*r("数量")
    r("会员价合计") = 0
    r("打折后合计") = 0
    Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
    Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
    Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
    Forms("销售前台").Controls("TextBox12").value = dr("价格合计")

这些语句不执行


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 8:38:00 [只看该作者]

Dim r As Row = CurrentTable.Current
Dim v As Integer = r("消费单号")
Dim dr As DataRow = DataTables("客户消费单").Find("消费单号 = "  & v)
If r("数量") <= r("库存数量") Then
    If r("会员卡号") IsNot Nothing Then
        r("价格合计") = r("零售单价")*r("数量")
        r("会员价合计") = r("会员单价")*r("数量")
        r("打折后合计") = r("零售单价")*r("数量")*r("折扣")
        Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
        Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
        Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
        Forms("销售前台").Controls("TextBox12").value = dr("打折后合计") + dr("会员价合计")
    End If
    If r("价格合计") = r("零售单价")*r("数量")
        r("会员价合计") = 0
        r("打折后合计") = 0
        Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
        Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
        Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
        Forms("销售前台").Controls("TextBox12").value = dr("价格合计")
    End If
Else
    CurrentTable.Current.DataRow.Load(False)
    Messagebox.Show("该商品库存数量不足!")
End If

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


加好友 发短信
等级:童狐 帖子:219 积分:1890 威望:0 精华:0 注册:2011/6/10 9:12:00
  发帖心情 Post By:2011/9/22 9:17:00 [只看该作者]

If r("价格合计") = r("零售单价")*r("数量")

这个IF语句怎么没有任何条件啊

词语运行时狐表会死掉


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 9:22:00 [只看该作者]

会死掉说明你的代码有问题,做个简单例子上传,说明在什么表的什么事件,设置了什么代码,目的是什么,结果是什么。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 9:24:00 [只看该作者]

CurrentTable.Current这样的代码绝对不应该出现在DataColchanged事件的。

CurrentTable.Current表示选定表的选定行,和触发事件的表和行,是两回事。

 

此外还要注意这个问题:

 

http://www.foxtable.com/help/topics/1522.htm

 

 

建议系统性地看一下帮助中《事件编程 》这一章。

[此贴子已经被作者于2011-9-22 9:25:56编辑过]

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


加好友 发短信
等级:童狐 帖子:219 积分:1890 威望:0 精华:0 注册:2011/6/10 9:12:00
  发帖心情 Post By:2011/9/22 9:25:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20110922092237.png
图片点击可在新窗口打开查看
这个IF语句我有点不懂

怎么没有任何条件

当会员卡号不为空时,即执行下面语句时,系统会死掉

If r("数量") <= r("库存数量") Then
    If r("会员卡号") IsNot Nothing Then
        r("价格合计") = r("零售单价")*r("数量")
        r("会员价合计") = r("会员单价")*r("数量")
        r("打折后合计") = r("零售单价")*r("数量")*r("折扣")
        Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
        Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
        Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
        Forms("销售前台").Controls("TextBox12").value = dr("打折后合计") + dr("会员价合计")
    End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 9:28:00 [只看该作者]

1、看五楼
2、if后面的不是条件是什么啊?

 
If r("价格合计") = r("零售单价")*r("数量") Then
   r("会员价合计") = 0
   r("打折后合计") = 0
   Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
   Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
   Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
   Forms("销售前台").Controls("TextBox12").value = dr("价格合计")
End If


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


加好友 发短信
等级:童狐 帖子:219 积分:1890 威望:0 精华:0 注册:2011/6/10 9:12:00
  发帖心情 Post By:2011/9/22 9:53:00 [只看该作者]

Dim r As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "数量","零售单价","会员单价"
Dim v As Integer = r("消费单号")
Dim dr As DataRow = DataTables("客户消费单").Find("消费单号 = "  & v)
    If r("会员卡号") IsNot Nothing Then
        r("价格合计") = r("零售单价")*r("数量")
        r("会员价合计") = r("会员单价")*r("数量")
        r("打折后合计") = r("零售单价")*r("数量")*r("折扣")
        Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
        Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
        Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
        Forms("销售前台").Controls("TextBox12").value = dr("打折后合计") + dr("会员价合计")
   
    Else  r("价格合计") = r("零售单价")*r("数量")--------即当r("会员卡号") Is Nothing 时执行下面语句。可是当满足“r("会员卡号") Is Nothing ”时下面的语句并不执行

r("会员价合计") = 0
        r("打折后合计") = 0
        Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
        Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
        Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
        Forms("销售前台").Controls("TextBox12").value = dr("价格合计")
    End If
End Select


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


加好友 发短信
等级:童狐 帖子:219 积分:1890 威望:0 精华:0 注册:2011/6/10 9:12:00
  发帖心情 Post By:2011/9/22 9:54:00 [只看该作者]

这个IF   THEN

   ELSE

   END  IF

的语句有什么错误吗


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 10:03:00 [只看该作者]

自己测试一下就行了:

 

 

Dim r As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "数量","零售单价","会员单价"
        Dim v As Integer = r("消费单号")
        Dim dr As DataRow = DataTables("客户消费单").Find("消费单号 = "  & v)
        If r("会员卡号") IsNot Nothing Then
            messagebox.show("Not Nothing")
            r("价格合计") = r("零售单价")*r("数量")
            r("会员价合计") = r("会员单价")*r("数量")
            r("打折后合计") = r("零售单价")*r("数量")*r("折扣")
            Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
            Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
            Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
            Forms("销售前台").Controls("TextBox12").value = dr("打折后合计") + dr("会员价合计")
        Else
            messagebox.show("Nothing")
            r("价格合计") = r("零售单价")*r("数量")
            r("会员价合计") = 0
            r("打折后合计") = 0
            Forms("销售前台").Controls("TextBox9").value = dr("价格合计")
            Forms("销售前台").Controls("TextBox10").value = dr("打折后合计")
            Forms("销售前台").Controls("TextBox16").value = dr("会员价合计")
            Forms("销售前台").Controls("TextBox12").value = dr("价格合计")
        End If
End Select


 回到顶部