以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 计算不同行的天数 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143725) |
||||
-- 作者:yangwenghd -- 发布时间:2019/12/2 17:18:00 -- 计算不同行的天数
老师计天列怎么等于,新增行的当天日期减 相同序号的的一个人日期。 比如新建一行,然后编号列内容判断有没之前相同的,如果没有相同的 计天列为0 如果有相同的编号,计天列就等于,新建行当天减去和想编号列相同的第一行的开始日期的天数。感谢老师了。 |
||||
-- 作者:有点蓝 -- 发布时间:2019/12/2 17:33:00 -- datacolchanged事件 Select Case e.DataCol.Name Case "序号","开始日期" If e.DataRow.IsNull("序号") OrElse e.DataRow.IsNull("开始日期") Else Dim d As Date = e.DataTable.Compute("min(开始日期)","序号 = \'" & e.DataRow("序号") & "\' and _Identify<>" & e.DataRow.IsNull("_Identify")) If d <> Nothing Then Dim tp As TimeSpan = cdate(e.DataRow("开始日期")) - d e.DataRow("计天") = tp.TotalDays End If End If End Select |
||||
-- 作者:yangwenghd -- 发布时间:2019/12/2 20:23:00 -- 老师,怎么可以把这段代码放到daterowadded 呀? 感谢 感谢 If e.DataCol.Name = "事件编号" Then Dim dr As DataRow dr = e.DataTable.Find("事件编号 = \'" & e.NewValue & "\'") If dr IsNot Nothing Then Select Case e.DataCol.Name Case "事件编号","进行_开始日期" If e.DataRow.IsNull("事件编号") OrElse e.DataRow.IsNull("进行_开始日期") Else Dim d As Date = e.DataTable.Compute("min(进行_开始日期)","事件编号 = \'" & e.DataRow("事件编号") & "\' and _Identify<>" & e.DataRow.IsNull("_Identify")) If d <> Nothing Then Dim tp As TimeSpan = cdate(e.DataRow("进行_开始日期")) - d e.DataRow("进行_用天") = tp.TotalDays End If End If End Select \'e.Cancel = True Else e.DataRow("进行_用天")="0" End If End If [此贴子已经被作者于2019/12/2 20:40:09编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/12/2 20:53:00 -- 这种用法只能放到datacolchanged事件 |
||||
-- 作者:yangwenghd -- 发布时间:2019/12/2 20:56:00 -- 谢谢老师,有没什么办法判断添加的行的事件编号列是否有重复的呀? 需要最后判断,感谢
|
||||
-- 作者:yangwenghd -- 发布时间:2019/12/2 21:29:00 -- 谢谢老师,我把两段代码分开放在两个事件里面,这样就解决了。感谢 |