Foxtable(狐表)用户栏目专家坐堂 → 问个条件问题


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

主题:问个条件问题

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2014/2/15 16:57:00 [只看该作者]

呵呵 也只有这样比较好 设置一个大的积分数吧

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/2/15 18:06:00 [只看该作者]

不用改表了:

If e.DataCol.Name = "积分" Then
    Dim dr1 As DataRow = DataTables("会员等级设置").Find("最低积分 > " & e.DataRow("积分"))
    Dim dr2 As DataRow = DataTables("会员等级设置").Find("等级名称 = '中级会员'")
    If dr1 Is Nothing Then
        e.DataRow("等级") = "高级会员"
    Else
        If dr2("最低积分") > e.DataRow("积分") Then
            e.DataRow("等级") = "初级会员"
        Else
            e.DataRow("等级") = "中级会员"
        End If
    End If
End If

[此贴子已经被作者于2014-2-15 18:15:39编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/2/15 18:54:00 [只看该作者]

下面的更通用:

If e.DataCol.Name = "积分" Then
    For i As Integer = 0 To DataTables("会员等级设置").DataRows.Count - 1
        If DataTables("会员等级设置").DataRows(i).IsNull("等级名称") = False AndAlso DataTables("会员等级设置").DataRows(i).IsNull("最低积分") = False Then
            If i < DataTables("会员等级设置").DataRows.Count - 1 Then
                If e.DataRow("积分") >= DataTables("会员等级设置").DataRows(i)("最低积分") AndAlso e.DataRow("积分") < DataTables("会员等级设置").DataRows(i + 1)("最低积分") Then
                    e.DataRow("等级") = DataTables("会员等级设置").DataRows(i)("等级名称")
                End If
            Else
                If e.DataRow("积分") >= DataTables("会员等级设置").DataRows(i)("最低积分") Then
                    e.DataRow("等级") = DataTables("会员等级设置").DataRows(DataTables("会员等级设置").DataRows.Count - 1)("等级名称")
                End If
            End If
        End If
    Next
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/15 19:04:00 [只看该作者]

 呃,楼主这个问题,表结构也不需要改的吧?find函数不是可以排序的么?根据积分取最后一个就是用户等级了。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/2/15 19:51:00 [只看该作者]

以下是引用有点甜在2014-2-15 19:04:00的发言:
 呃,楼主这个问题,表结构也不需要改的吧?find函数不是可以排序的么?根据积分取最后一个就是用户等级了。

理解的更透彻,运用的更巧妙。

从善如流,见贤思齐。

If e.DataCol.Name = "积分" Then
    If e.DataRow("积分") < 0 Then
        e.DataRow("积分") = Nothing
        e.DataRow("等级") = Nothing
        MessageBox.Show("积分不能为负")
    Else
        Dim dr As DataRow = DataTables("会员等级设置").Find("最低积分 < = " & e.DataRow("积分"),"最低积分 Desc")
        If dr IsNot Nothing Then
            e.DataRow("等级") = dr("等级名称")
        End If
    End If
End If

[此贴子已经被作者于2014-2-15 19:53:47编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/17 8:47:00 [只看该作者]

顶一下,我都忘记Find函数有这个参数了。

 

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


 回到顶部
总数 16 上一页 1 2