Foxtable(狐表)用户栏目专家坐堂 → 当一列出现某个字样时的计算


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

主题:当一列出现某个字样时的计算

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


加好友 发短信
等级:童狐 帖子:226 积分:1796 威望:0 精华:0 注册:2016/8/3 15:11:00
当一列出现某个字样时的计算  发帖心情 Post By:2016/9/8 17:17:00 [只看该作者]

有三列,一列“账户名”,
            一列“利润”,
             一列“总额”

现在的情况是:
           当“账户名”列出现 “张” 字样,“利润”=利率*存款额
                                                 “总额”=存款额*0.05
          
           当“账户名”列出现 “李” 字样,“利润”=利率*存款额*0.1
                                                 “总额”=0
           
           当“账户名”列出现 “赵” 字样,“利润”=利率*存款额*0.2
                                                 “总额”=0

怎么设置代码?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 17:25:00 [只看该作者]

类似以下代码

DataColChanged事件
Select Case e.DataCol.Name
    Case "账户名"
        If e.NewValue > "" Then
            If e.NewValue.contains("张") Then
                e.DataRow("利润")=e.DataRow("利率") * e.DataRow("存款额")
            ElseIf e.NewValue.contains("李") Then
                e.DataRow("利润")=e.DataRow("利率") * e.DataRow("存款额") -0.1
            Else
                
            End If
        End If
End Select

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


加好友 发短信
等级:童狐 帖子:226 积分:1796 威望:0 精华:0 注册:2016/8/3 15:11:00
  发帖心情 Post By:2016/9/8 17:40:00 [只看该作者]

Select Case e.DataCol.Name
    Case "账户名"
        If e.NewValue > "" Then
            If e.NewValue.contains("张") Then
                e.DataRow("利润")=e.DataRow("利率") * e.DataRow("存款额")
            ElseIf e.NewValue.contains("李") Then
                e.DataRow("利润")=e.DataRow("利率") * e.DataRow("存款额") -0.1
            Else
                
            End If
        End If
End Select

那如果“利率”和“存款额”是来自另外一个表“明细表”,怎么引用呢?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/8 17:46:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:226 积分:1796 威望:0 精华:0 注册:2016/8/3 15:11:00
  发帖心情 Post By:2016/9/9 8:45:00 [只看该作者]

这个引用我看明白了,但是引用时还得设置计算公式,这个不会

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/9 8:48:00 [只看该作者]

类似

Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("产品").Find("[品名] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("利润") = dr("利率") * dr("存款额")
        End If

 回到顶部