以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 与上一行的日期的天数计算? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55064) |
||||||||
-- 作者:jk362223 -- 发布时间:2014/8/9 22:45:00 -- 与上一行的日期的天数计算? 有一个表“病情记录单”,表中有列“记录时间”,还有一列是“天数”,现在的问题是,“天数”列是本行与上一行“记录时间”的间隔天数。如示例
|
||||||||
-- 作者:y2287958 -- 发布时间:2014/8/9 22:53:00 -- 用FIND得到上一行 然后用当前的日期减去上一行日期即可
|
||||||||
-- 作者:jk362223 -- 发布时间:2014/8/9 23:24:00 -- 按示例,给个代码,好吗? |
||||||||
-- 作者:jk362223 -- 发布时间:2014/8/9 23:25:00 -- 我希望是从后台计算的, |
||||||||
-- 作者:y2287958 -- 发布时间:2014/8/10 7:28:00 -- 你的示例中没有“病情记录单”这个表 |
||||||||
-- 作者:lsy -- 发布时间:2014/8/10 8:04:00 -- DataColChanged
If e.DataCol.Name = "记录时间" AndAlso e.DataRow.IsNull(e.DataCol) = False Then |
||||||||
-- 作者:jk362223 -- 发布时间:2014/8/10 11:39:00 -- 将代码加入后,出现提示
“病情记录单”的主健有“身份证号”,“报销起日”,我要的是有相同的“身份证号”,“报销起日”行之间“天数”,“报销起日”是按升排序的。以从后台调行, 示例
|
||||||||
-- 作者:有点甜 -- 发布时间:2014/8/10 11:49:00 -- 代码
Select Case e.DataCol.Name |
||||||||
-- 作者:jk362223 -- 发布时间:2014/8/10 15:36:00 -- 上述示例,增加一个“距今天数“列,若”报销止日“为空,计算[最后一行]距今天的天数;若”报销止日“不为空,则计算[最后一行]距”报销止日“的天数, 请问代码如何写?
|
||||||||
-- 作者:有点甜 -- 发布时间:2014/8/10 15:48:00 -- Select Case e.DataCol.Name Case "身份证号", "报销起日", "记录时间", "报销止日" If e.DataCol.Name = "记录时间" AndAlso e.DataRow.IsNull(e.DataCol) = False Then Dim dr As DataRow = e.DataTable.Find("身份证号 = \'" & e.DataRow("身份证号") & "\' and 报销起日 = #" & e.DataRow("报销起日") & "# and _Identify <> \'" & e.DataRow("_Identify") & "\' and 记录时间 <= #" & e.DataRow("记录时间") & "#","记录时间 Desc") If dr IsNot Nothing Then Dim tp As TimeSpan = e.DataRow("记录时间") - dr("记录时间") e.DataRow("天数") = tp.TotalDays Else e.DataRow("天数") = 0 End If dr As DataRow = e.DataTable.Find("身份证号 = \'" & e.DataRow("身份证号") & "\' and 报销起日 = #" & e.DataRow("报销起日") & "# and 报销止日 is no null", "报销止日 desc") If dr IsNot Nothing Then Dim tp As TimeSpan = e.DataRow("报销止日") - dr("报销止日") e.DataRow("距今天数") = tp.TotalDays Else e.DataRow("距今天数") = 0 End If End If End Select |