Foxtable(狐表)用户栏目专家坐堂 → DON老师,再帮我精简一段代码


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

主题:DON老师,再帮我精简一段代码

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
DON老师,再帮我精简一段代码  发帖心情 Post By:2013/6/5 9:42:00 [只看该作者]

意思是,月份数值有变动时,则自动求和(不想用表达式,不能导出,特别是我把表放到另一个系统时不方便迁移)

Select Case e.DataCol.Name
    Case "TX2013年01月","TX2013年02月","TX2013年03月","TX2013年04月","TX2013年05月","TX2013年06月","TX2013年07月","TX2013年08月","TX2013年09月","TX2013年10月","TX2013年11月","TX2013年12月","TX2014年01月","TX2014年02月","TX2014年03月","TX2014年04月","TX2014年05月","TX2014年06月","TX2014年07月","TX2014年08月","TX2014年09月","TX2014年10月","TX2014年11月","TX2014年12月"
        Dim er As DataRow = e.DataRow
        If e.NewValue<>e.OldValue Then
            er("TX2013年合计")=er("TX2013年01月")+er("TX2013年02月")+er("TX2013年03月")+er("TX2013年04月")+er("TX2013年05月")+er("TX2013年06月")+er("TX2013年07月")+er("TX2013年08月")+er("TX2013年09月")+er("TX2013年10月")+er("TX2013年11月")+er("TX2013年12月")
            er("TX2014年合计")=er("TX2014年01月")+er("TX2014年02月")+er("TX2014年03月")+er("TX2014年04月")+er("TX2014年05月")+er("TX2014年06月")+er("TX2014年07月")+er("TX2014年08月")+er("TX2014年09月")+er("TX2014年10月")+er("TX2014年11月")+er("TX2014年12月")
        End If
End Select

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


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

列名好奇怪呀:有具体的日期,那就要经常变动列名,这项目只能自己用了,发布后很快作废。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/5 9:59:00 [只看该作者]

简单的相加,你用表达式,不简单很多吗?

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/6/5 9:59:00 [只看该作者]

你这个列名有点问题哦,以后再增长怎么办?

 

Dim yy As String = e.DataCol.name.SubString(2,4)
If e.DataCol.name Like "TX" & yy & "年%月" Then
    Dim dcm As Decimal = 0
    For Each dc As DataCol In e.DataTable.DataCols
        If dc.Name Like "TX" & yy & "年%月" Then
            dcm = dcm + e.DataRow(dc.Name)
        End If
    Next
    e.DataRow("TX" & yy & "年合计")= dcm
End If


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/5 10:30:00 [只看该作者]

楼主大概用Excel久了,建议加强数据库的认识

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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/6/5 10:54:00 [只看该作者]

楼上两位好热心,到处有足迹

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
回复:(lsy)列名好奇怪呀:有具体的日期,那就要经常...  发帖心情 Post By:2013/6/5 13:37:00 [只看该作者]

谢谢LSY,像这种不能自动加列的摊销表,涉及到列变动,如何做才好?

 

或者设置为:一个月份ComBox按钮,一个表,有期初金额,本月摊销金额,累计摊销金额,本月摊销=合同金额/月份数,当选择某个月份时,自动列出这个月份的摊销金额及期初、累计金额,这样行不


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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/6/5 14:17:00 [只看该作者]

谢谢狐爸、DON、jspta老师

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/5 14:22:00 [只看该作者]

这种情况应该报表解决就行了,不应该出现在数据库中.

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/6/5 15:09:00 [只看该作者]

以下是引用zerov在2013-6-5 9:42:00的发言:
意思是,月份数值有变动时,则自动求和(不想用表达式,不能导出,特别是我把表放到另一个系统时不方便迁移)

Select Case e.DataCol.Name
    Case "TX2013年01月","TX2013年02月","TX2013年03月","TX2013年04月","TX2013年05月","TX2013年06月","TX2013年07月","TX2013年08月","TX2013年09月","TX2013年10月","TX2013年11月","TX2013年12月","TX2014年01月","TX2014年02月","TX2014年03月","TX2014年04月","TX2014年05月","TX2014年06月","TX2014年07月","TX2014年08月","TX2014年09月","TX2014年10月","TX2014年11月","TX2014年12月"
        Dim er As DataRow = e.DataRow
        If e.NewValue<>e.OldValue Then
            er("TX2013年合计")=er("TX2013年01月")+er("TX2013年02月")+er("TX2013年03月")+er("TX2013年04月")+er("TX2013年05月")+er("TX2013年06月")+er("TX2013年07月")+er("TX2013年08月")+er("TX2013年09月")+er("TX2013年10月")+er("TX2013年11月")+er("TX2013年12月")
            er("TX2014年合计")=er("TX2014年01月")+er("TX2014年02月")+er("TX2014年03月")+er("TX2014年04月")+er("TX2014年05月")+er("TX2014年06月")+er("TX2014年07月")+er("TX2014年08月")+er("TX2014年09月")+er("TX2014年10月")+er("TX2014年11月")+er("TX2014年12月")
        End If
End Select

不明白为什么要这么长?


 回到顶部
总数 14 1 2 下一页