Foxtable(狐表)用户栏目专家坐堂 → 各位高手,我想计算一个方差,不知道代码怎么写,请教各位!


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

主题:各位高手,我想计算一个方差,不知道代码怎么写,请教各位!

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


加好友 发短信
等级:童狐 帖子:249 积分:2238 威望:0 精华:0 注册:2016/10/29 14:17:00
各位高手,我想计算一个方差,不知道代码怎么写,请教各位!  发帖心情 Post By:2017/9/11 11:06:00 [只看该作者]

各位高手,我想计算一个方差,不知道代码怎么写,请教各位!
=退休费合计*(1+6%)^(SubString(Convert([退休时间],'System.String'),1,4)-2015)
例如:2017年退休的计算为3214*(1+6%)^(2017-2015)=3611.25

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


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

不能用表达式,要在DataColChanged事件写代码

 

Select Case e.DataCol.name
    Case "退休费合计", "退休时间"
        If e.DataRow.isnull("退休时间") Then
            e.DataRow("某列") = Nothing
        Else
            e.DataRow("某列") = e.DataRow("退休费合计")*(1+0.06)^(Cdate(e.DataRow("退休时间")).year-2015)
        End If
End Select


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


加好友 发短信
等级:童狐 帖子:249 积分:2238 威望:0 精华:0 注册:2016/10/29 14:17:00
  发帖心情 Post By:2017/9/11 11:38:00 [只看该作者]

以下是引用有点甜在2017/9/11 11:19:00的发言:

不能用表达式,要在DataColChanged事件写代码

 

Select Case e.DataCol.name
    Case "退休费合计", "退休时间"
        If e.DataRow.isnull("退休时间") Then
            e.DataRow("某列") = Nothing
        Else
            e.DataRow("某列") = e.DataRow("退休费合计")*(1+0.06)^(Cdate(e.DataRow("退休时间")).year-2015)
        End If
End Select

 

怎么计算值为0呢


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


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

填入合计数、填入退休时间了吗?我测试代码没问题

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


加好友 发短信
等级:童狐 帖子:249 积分:2238 威望:0 精华:0 注册:2016/10/29 14:17:00
  发帖心情 Post By:2017/9/11 11:54:00 [只看该作者]

以下是引用有点甜在2017/9/11 11:41:00的发言:
填入合计数、填入退休时间了吗?我测试代码没问题

我的退休时间是通过退休日期格式化的(e.DataRow("退休日期")=format(e.DataRow("退休时间"),"yyyyMM")),不知道有没有问题

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:无标题2.jpg
图片点击可在新窗口打开查看

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


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

贴出你写的代码。

 


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


加好友 发短信
等级:童狐 帖子:249 积分:2238 威望:0 精华:0 注册:2016/10/29 14:17:00
  发帖心情 Post By:2017/9/11 12:20:00 [只看该作者]

以下是引用有点甜在2017/9/11 12:12:00的发言:

贴出你写的代码。

 

Select Case e.DataCol.name
    Case "退休费合计", "退休时间"
        If e.DataRow.isnull("退休时间") Then
            e.DataRow("中人老办法待遇") = Nothing
        Else
            e.DataRow("中人老办法待遇") = e.DataRow("退休费合计")*(1+0.06)^(Cdate(e.DataRow("退休时间")).year-2015)
        End If
End Select


Select Case e.DataCol.name
    Case "身份证号码"
        If e.DataRow.IsNull("身份证号码") Then
            e.DataRow("籍贯") = Nothing
        Else
            Dim bm As String = e.DataRow("身份证号码").SubString(0,6)
            Dim dr As DataRow = DataTables("身份证").Find("籍贯编码 = '" & bm & "'")
            If dr IsNot Nothing Then
                e.DataRow("籍贯") = dr("籍贯")
            End If


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


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

代码没问题。你修改一下退休时间列的值看看,肯定重新计算了。

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


加好友 发短信
等级:童狐 帖子:249 积分:2238 威望:0 精华:0 注册:2016/10/29 14:17:00
  发帖心情 Post By:2017/9/11 12:29:00 [只看该作者]

以下是引用有点甜在2017/9/11 12:23:00的发言:
代码没问题。你修改一下退休时间列的值看看,肯定重新计算了。

修改退休时间列后,能计算了。谢谢高手!


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


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

以下是引用xhydxs在2017/9/11 12:29:00的发言:

修改退休时间列后,能计算了。谢谢高手!

 

重置列 http://www.foxtable.com/webhelp/scr/1469.htm

 


 回到顶部