以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助:自动修改代码列名中的年份 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114363) |
-- 作者:hofen2008 -- 发布时间:2018/2/4 15:53:00 -- 求助:自动修改代码列名中的年份 因我的表中有多列,例如:“年出差统计_2014”、“年出差统计_2015”、“年出差统计_2016”、“年出差统计_2017”、“年出差统计_2018”........,如每一列都复制修改代码,感觉太繁琐了。 想自动修改case后面代码的年份,和第3行代码中的年份。 请老师帮忙看看有没有好的方法。谢谢! 1 Select Case e.DataCol.Name 2 Case "年出差统计_2014" 3 Dim y As Integer =2014 4 Dim ys As Date = New Date(y,1,1) 5 Dim yd As Date = New Date(y,12,31) Dim drs As List(Of DataRow) Dim days As timespan If e.DataRow("目的国入境_日期")>= ys And e.DataRow("目的国入境_日期")<= yd Then If e.DataRow("离境_日期")<=yd Then days=cdate(e.DataRow("离境_日期"))-cdate(e.DataRow("目的国入境_日期")) Else days=cdate(yd)-cdate(e.DataRow("目的国入境_日期")) End If e.DataRow(e.DataCol.name)=math.round(days.Totaldays+1,0) End If If e.DataRow("目的国入境_日期")< ys And e.DataRow("离境_日期")>= ys And e.DataRow("离境_日期")<= yd Then days=cdate(e.DataRow("离境_日期"))-cdate(ys) e.DataRow(e.DataCol.name)=math.round(days.Totaldays+1,0) End If End Select
|
-- 作者:有点甜 -- 发布时间:2018/2/4 17:21:00 -- Select Case e.DataCol.Name
改成这样的判断
If e.DataCol.name.startswith("年出差统计_") Then |
-- 作者:hofen2008 -- 发布时间:2018/2/4 19:24:00 -- 多谢老师的帮助,已完美解决,谢谢! 另外一个问题: case 后面的 列名称 如何能自动获取呢 Select Case e.DataCol.Name |
-- 作者:有点甜 -- 发布时间:2018/2/4 19:50:00 -- 认认真真看2楼代码
If e.DataCol.name.startswith("年出差统计_") Then
End If |
-- 作者:hofen2008 -- 发布时间:2018/2/4 20:13:00 -- 搞定了,多谢老师! |