以文本方式查看主题
- 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
|