以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 无法即时更新 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110394) |
|
-- 作者:有点蓝 -- 发布时间:2017/12/1 23:35:00 -- 代码写在哪个表哪个事件的? |
|
-- 作者:有点蓝 -- 发布时间:2017/12/2 11:50:00 -- Dim dt As DataTable =DataTables("生产排产表") If e.DataCol.Name = "设备编码" Then Dim drs = dt.Select("使用设备 = \'" & e.DataRow("设备编码") & "\'") For Each dr As DataRow In drs Dim d1 As Date = dr("开始日期") Dim d2 As Date = dr("实际完成日期") msgbox((d2-d1).TotalDays) ‘看弹出什么值 For i As Integer = 0 To (d2-d1).TotalDays Dim d As Date = d1.AddDays(i) Dim sp As TimeSpan = d - Date.Today If sp.TotalDays >=0 AndAlso sp.TotalDays < 31 Then msgbox("列=日" & (sp.TotalDays+1) & ",值=" & dr("成品描述")) ‘看弹出什么值 e.DataRow("日" & sp.TotalDays+1) = dr("成品描述")
End If Next Next End If |
|
-- 作者:有点蓝 -- 发布时间:2017/12/2 12:16:00 -- 这一长串的提示还看不懂问题在哪里吗? |
|
-- 作者:有点蓝 -- 发布时间:2017/12/5 21:49:00 -- TotalDays不是整数值,自然不能和列名称对应起来 |
|
-- 作者:有点蓝 -- 发布时间:2017/12/5 22:18:00 -- Dim dt As DataTable =DataTables("生产排产表") If e.DataCol.Name = "使用设备" Then Dim drs = dt.Select("使用设备 = \'" & e.DataRow("使用设备") & "\'") For Each dr As DataRow In drs Dim d1 As Date = dr("开始日期") Dim d2 As Date = dr("实际完成日期") For i As Integer = 0 To math.Ceiling(d2-d1).TotalDays) Dim d As Date = d1.AddDays(i) Dim sp As TimeSpan = d - Date.Today dim d as integer = math.Ceiling(sp.TotalDays) If d>=0 AndAlso d < 31 Then e.DataRow("日" & d+1) = dr("成品描述") End If
Next Next End If |
|
-- 作者:有点蓝 -- 发布时间:2017/12/5 22:33:00 -- math.Ceiling((d2-d1).TotalDays) |
|
-- 作者:有点蓝 -- 发布时间:2017/12/5 22:44:00 -- 少了个括号 |
|
-- 作者:有点蓝 -- 发布时间:2017/12/5 23:17:00 -- e.DataRow("日" & (d+1)) = dr("成品描述") |
|
-- 作者:有点蓝 -- 发布时间:2017/12/6 9:11:00 --
|
|
-- 作者:有点蓝 -- 发布时间:2017/12/6 10:33:00 -- 你要先搞清楚你自己的逻辑,你的日期是带时间的,计算出来不足一天的话,应该是向下取整还是像取整? 比如是1.3天,是算1天还是2天?1.8天呢? 0.2天呢,算一天吗,算今天,还是+1算成明天?
|