Foxtable(狐表)用户栏目专家坐堂 → 三列日期合并的代码怎么写?


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

主题:三列日期合并的代码怎么写?

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


加好友 发短信
等级:二尾狐 帖子:593 积分:5538 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2018/4/7 19:08:00 [只看该作者]

这三个日期有可能会出现同一行的[收入日期1]、[收入日期2]、[支出日期]三列当中有2个日期或3个日期同时出现的吗?

给你两个思路,代码应该不难写:

1、如果不会同时出现,那么就判断[收入日期1]、[收入日期2]、[支出日期]哪个不为空,就将哪个日期填在【收支日期】列;
2、如果有可能同时出现,那么就判断[收入日期1]、[收入日期2]、[支出日期]哪个日期最新,就将哪个日期填在【收支日期】列;
[此贴子已经被作者于2018/4/7 19:11:26编辑过]

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


加好友 发短信
等级:婴狐 帖子:12 积分:279 威望:0 精华:0 注册:2015/5/30 12:36:00
  发帖心情 Post By:2018/4/7 21:21:00 [只看该作者]

谢谢xvkewen的提示,因我是初学,所以考虑过你的思路 ,但代码运用不熟悉。照你提供思路代码如下:
Select Case e.DataCol.Name
    Case "收入日期1","收入日期2","支出日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("收入日期1")  And  dr.IsNull("收入日期2")
            dr("收支日期") = "支出日期"
        Else
            If dr.IsNull("收入日期1")  And   dr.IsNull("支出日期")
                dr("收支日期") = "收入日期2"
                If dr.IsNull("收入日期2")  And   dr.IsNull("支出日期")
                    dr("收支日期") = "收入日期1"
                End If
            End If
        End If
End Select
运行上述代码,出现错误提示,能否帮分析 是哪里出错了。
图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:12 积分:279 威望:0 精华:0 注册:2015/5/30 12:36:00
  发帖心情 Post By:2018/4/7 21:25:00 [只看该作者]

上面语句缺了then,加上去也没用。
Select Case e.DataCol.Name
    Case "收入日期1","收入日期2","支出日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("收入日期1")  And  dr.IsNull("收入日期2") Then
            dr("收支日期") = "支出日期"
        Else
            If dr.IsNull("收入日期1")  And   dr.IsNull("支出日期") Then
                dr("收支日期") = "收入日期2"
                If dr.IsNull("收入日期2")  And   dr.IsNull("支出日期") Then
                    dr("收支日期") = "收入日期1"
                End If
            End If
        End If
End Select

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


加好友 发短信
等级:婴狐 帖子:12 积分:279 威望:0 精华:0 注册:2015/5/30 12:36:00
  发帖心情 Post By:2018/4/7 23:43:00 [只看该作者]

终于搞定,原来犯了两个错误,一是代码中语法有错误,二是没有运用IF语句中的多分支形式。还是要认真理解说明呀,改写代码如下:
Select Case e.DataCol.Name
    Case "收入日期1","收入日期2","支出日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("收入日期1")  And  dr.IsNull("收入日期2") Then
            dr("收支日期") = dr("支出日期")
        ElseIf dr.IsNull("收入日期1")  And  dr.IsNull("支出日期") Then
            dr("收支日期") = dr("收入日期2")
        Else
            If  dr.IsNull("收入日期2")  And  dr.IsNull("支出日期") Then
                dr("收支日期") = dr("收入日期1")
            End If
        End If
End Select
再次感谢 xvkewen 和 有点甜  二位的指点

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