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


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

主题:IF语句找错

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望: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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/22 9:22:00 [显示全部帖子]

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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望: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编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望: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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望: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


 回到顶部