以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助表达式该如何设计?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86832)

--  作者:小小小狐
--  发布时间:2016/6/27 14:17:00
--  求助表达式该如何设计?


图片点击可在新窗口打开查看此主题相关图片如下:1111.bmp
图片点击可在新窗口打开查看
我想设置消费金额在不同区间,表达式列里会自动出现会员级别,看帮助只看到这样

IIF( 550 > [消费金额] > 0, \'普通会员\', \'黄金会员\')

如何设置成0<消费金额<550,普通会员

              550<消费金额<1200,黄金会员

              1200<消费金额<1550,白金会员

              1550<消费金额<2000,铂金会员

              2000<消费金额,钻石会员

图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/6/27 15:20:00
--  

 编写dataColChanged事件

 

Select Case e.DataCol.name
    Case "消费金额"
        Dim i As Double = e.DataRow("消费金额")
        If i > 0 AndAlso i < 550 Then
            e.DataRow("会员等级") = "普通会员"
        ElseIf i > 550 AndAlso i < 1200 Then
            e.DataRow("会员等级") = "黄金会员"
        ElseIf i > 1200 AndAlso i < 1550 Then
            e.DataRow("会员等级") = "白金会员"
        ElseIf i > 1550 AndAlso i < 2000 Then
            e.DataRow("会员等级") = "会员"
        ElseIf i > 2000 Then
            e.DataRow("会员等级") = "普通会员"
        End If
End Select


--  作者:小小小狐
--  发布时间:2016/6/27 18:43:00
--  
如果是手动输入数据,按照那个代码写可以自动获取会员级别,但是把消费金额列设置成了表达式列,是根据另一个表计算总金额,但是会员级别并不会自动改变。
--  作者:大红袍
--  发布时间:2016/6/27 19:38:00
--  
编写dataColChanged事件

 

Select Case e.DataCol.name
    Case "会员等级"
        Dim i As Double = e.DataRow("消费金额")
        If i > 0 AndAlso i < 550 Then
            e.DataRow("会员等级") = "普通会员"
        ElseIf i > 550 AndAlso i < 1200 Then
            e.DataRow("会员等级") = "黄金会员"
        ElseIf i > 1200 AndAlso i < 1550 Then
            e.DataRow("会员等级") = "白金会员"
        ElseIf i > 1550 AndAlso i < 2000 Then
            e.DataRow("会员等级") = "会员"
        ElseIf i > 2000 Then
            e.DataRow("会员等级") = "普通会员"
        End If
End Select

 

子表的datacolchanged事件

 

If e.DataCol.Name = "金额" Then DataTables("表A").DataCols("会员等级").RaiseDataColChanged


--  作者:小小小狐
--  发布时间:2016/6/28 11:05:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建.table

为什么还是不行啊?也不知道是哪里出问题了,我就先弄了简单的表,麻烦老师帮忙看看这是哪里的问题?
--  作者:大红袍
--  发布时间:2016/6/28 11:19:00
--  
Select Case e.DataCol.Name
    Case "数量", "单价"
        DataTables("会员资料").DataCols("会员等级").RaiseDataColChanged
End Select

--  作者:小小小狐
--  发布时间:2016/6/28 11:34:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未命名.bmp
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看问题层出不穷啊!!
--  作者:大红袍
--  发布时间:2016/6/28 11:36:00
--  

Dim i As Double = e.DataRow("消费金额")

 

改成

 

Dim i As Double = val(e.DataRow("消费金额"))


--  作者:小小小狐
--  发布时间:2016/6/28 11:48:00
--  
图片点击可在新窗口打开查看已经没有问题了,太感谢您了!!!图片点击可在新窗口打开查看