以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  IF语句找错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12953)

--  作者:youyuweinihao
--  发布时间:2011/9/22 8:05:00
--  IF语句找错

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("价格合计")

这些语句不执行


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2011/9/22 9:17:00
--  

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

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

词语运行时狐表会死掉


--  作者:狐狸爸爸
--  发布时间:2011/9/22 9:22:00
--  
会死掉说明你的代码有问题,做个简单例子上传,说明在什么表的什么事件,设置了什么代码,目的是什么,结果是什么。
--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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
--  发布时间:2011/9/22 9:54:00
--  

这个IF   THEN

   ELSE

   END  IF

的语句有什么错误吗


--  作者:狐狸爸爸
--  发布时间: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