以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 在有效期内每行的年月自动增长 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91745) |
||||
-- 作者:liu1992 -- 发布时间:2016/10/18 11:29:00 -- 在有效期内每行的年月自动增长 表A有一个合同有效期,表B可以根据表A的合同有效期自动生成年月的行,每行加一月。 表A 表B
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/18 12:08:00 -- Dim d1 As Date = Tables("表A").Current("开始日期") Dim d2 As Date = Tables("表A").Current("结束日期") d1 = new Date(d1.Year,d1.Month,1) d2 = new Date(d2.Year,d2.Month,Date.DaysInMonth(d2.Year,d2.Month)) Dim dr As DataRow Do While d1 < d2 dr = DataTables("表B").AddNew() dr("第三列") = Format(d1,"yyyy.MM") d1 = d1.AddMonths(1) Loop |
||||
-- 作者:liu1992 -- 发布时间:2016/10/18 16:55:00 -- 没有执行结果啊。 我再补充清楚一点啊,就是表A有合同号,表B也有合同号,在表A某条合同起始日期和结束日期内,表B相同合同号下自动新增年月行
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/18 16:58:00 -- 看懂代码,改为自己的表名和列名。不会就上传项目 |
||||
-- 作者:liu1992 -- 发布时间:2016/10/19 9:33:00 --
请老师指导,谢谢! 密码:avic123 [此贴子已经被作者于2016/10/19 10:33:48编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/19 10:08:00 -- Dim d1 As Date = Tables("合同管理").Current("起始日") Dim d2 As Date = Tables("合同管理").Current("终止日") d1 = new Date(d1.Year,d1.Month,1) d2 = new Date(d2.Year,d2.Month,Date.DaysInMonth(d2.Year,d2.Month)) Dim dr As DataRow DataTables("应实收记录").StopRedraw Do While d1 < d2 dr = DataTables("应实收记录").AddNew dr("合同号") = Tables("合同管理").Current("合同号") dr("年月") = Format(d1,"yyyy.MM") d1 = d1.AddMonths(1) Loop DataTables("应实收记录").ResumeRedraw
|
||||
-- 作者:liu1992 -- 发布时间:2016/10/19 10:39:00 -- 老师,我写在“合同管理”表的datacolchanged里面,但是没有看到执行的结果?应该写在哪里? ps:刚刚忘记写项目的密码上去了。
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/19 11:05:00 -- datacolchanged这样 Dim dr As DataRow = e.DataRow If dr.IsNull("起始日") = False AndAlso dr.IsNull("终止日") = False Then Dim d1 As Date = dr("起始日") Dim d2 As Date = dr("终止日") d1 = new Date(d1.Year,d1.Month,1) d2 = new Date(d2.Year,d2.Month,Date.DaysInMonth(d2.Year,d2.Month)) Dim dr2 As DataRow DataTables("应实收记录").StopRedraw Do While d1 < d2 dr2 = DataTables("应实收记录").AddNew dr2("合同号") = dr("合同号") dr2("年月") = Format(d1,"yyyy.MM") d1 = d1.AddMonths(1) Loop End If DataTables("应实收记录").ResumeRedraw 这2个时间有变化或者重置列才会起效 |
||||
-- 作者:liu1992 -- 发布时间:2016/10/19 11:27:00 -- 不管重置还是更改这两个时间,还是没有执行结果啊!您那边能有结果吗? |
||||
-- 作者:有点蓝 -- 发布时间:2016/10/19 11:58:00 -- 我测试没有问题
|