Foxtable(狐表)用户栏目专家坐堂 → 请问下 这段代码可以简化不


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

主题:请问下 这段代码可以简化不

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


加好友 发短信
等级:幼狐 帖子:159 积分:1466 威望:0 精华:0 注册:2020/5/21 16:23:00
请问下 这段代码可以简化不  发帖心情 Post By:2021/11/23 17:15:00 [只看该作者]

有好多列 请问下需要这样罗列出来么 如果有200列都要这样写上去么=。=  不知道有没有简化的方法或者可以提高速度的方法(数据多了以后会卡)先谢谢啦
 
Select Case e.DataCol.Name
    Case "岗位工资","综合补贴","考核工资","计件工资","补贴","房贴","加班费","国定假加班费","值班费","托底","津贴","高温费","奖金","饭贴","劳防用品","补发本年度","补发上年度","其他","半年奖","年终奖","上年年终奖","特别奖励","工伤","垫付","离职补偿","病假扣款","事假扣款","转正入离职扣款","产假停发"
        If e.DataRow.IsNull("身份证") Then
            e.DataRow("应发合计") = Nothing
        Else
            e.DataRow("应发合计") = e.DataRow("岗位工资")+e.DataRow("综合补贴")+e.DataRow("考核工资")+e.DataRow("计件工资")+e.DataRow("补贴")+e.DataRow("房贴")+e.DataRow("加班费")+e.DataRow("国定假加班费")+e.DataRow("值班费")+e.DataRow("托底")+e.DataRow("津贴")+e.DataRow("高温费")+e.DataRow("奖金")+e.DataRow("饭贴")+e.DataRow("劳防用品")+e.DataRow("补发本年度")+e.DataRow("补发上年度")+e.DataRow("其他")+e.DataRow("半年奖")+e.DataRow("年终奖")+e.DataRow("上年年终奖")+e.DataRow("特别奖励")+e.DataRow("工伤")+e.DataRow("垫付")+e.DataRow("离职补偿")-e.DataRow("病假扣款")-e.DataRow("事假扣款")-e.DataRow("转正入离职扣款")-e.DataRow("产假停发")
        End If
        
        Dim dr2 As DataRow = e.DataTable.Find("[_SortKey] < " & dr("_SortKey") & " And [单位] = '" & dr("单位") & "' And [身份证] = '" & dr("身份证") & "' And [日期] = #" & dr("日期") & "# ", "[_SortKey] Desc")
        If e.DataRow.IsNull("身份证") Then
            e.DataRow("累计应发工资") = Nothing
            dr2 = e.DataRow
        ElseIf dr2 IsNot Nothing Then
            dr("累计应发工资") = e.DataTable.Compute("Sum(应发合计)"," [单位] = '" & dr("单位") & "' And [身份证] = '" & dr("身份证") & "' and [日期] <= #" & dr("日期") & "# ")
            dr2 = e.DataRow
        Else
            dr("累计应发工资") = e.DataTable.Compute("Sum(应发合计)"," [单位] = '" & dr("单位") & "' And [身份证] = '" & dr("身份证") & "' and [日期] <= #" & dr("日期") & "# ")
            dr2 = e.DataRow
        End If
End Select

[此贴子已经被作者于2021/11/23 17:16:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/23 17:30:00 [只看该作者]

数据多了干啥都卡,和这个代码基本没有什么关系。

要优化,有很多方式
比如给列标题统一一个前缀,然后遍历所有列,判断是这种前缀就合计

比如把需要合计的列放到数组里,然后遍历数组进行合计

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


加好友 发短信
等级:幼狐 帖子:159 积分:1466 威望:0 精华:0 注册:2020/5/21 16:23:00
  发帖心情 Post By:2021/11/23 18:02:00 [只看该作者]

 蓝大 再问下这个 遍历列判断前缀合计 和 遍历数组合计 在文档里有类似的例子不 谢谢您啦

 回到顶部