以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在A表计算x+Y列有效日期范围,并符合s周期需求,再在B表生成行并赋值!【已解决】 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67457) |
|
-- 作者:foxbable_saber -- 发布时间:2015/4/24 16:32:00 -- [求助]在A表计算x+Y列有效日期范围,并符合s周期需求,再在B表生成行并赋值!【已解决】
[此贴子已经被作者于2015/4/27 15:45:07编辑过]
|
|
-- 作者:Bin -- 发布时间:2015/4/24 16:42:00 -- Dim drs As List(Of DataRow) drs = DataTables("总表").Select("[需换钱否] = True") For Each dr As DataRow In drs For Each drr As DataRow In DataTables("计划生成表").Select("有效任务编号=\'" & dr("有效任务编号") & "\' and 执行日期>=#" & dr("起始日期") & "# and 执行日期<=#" & dr("结束日期") & "#") \'drr 您说是想要的行 ******这里得 声明新"变量列"名称,然后 变量池是 drr 里面的值,这个怎么写?? Dim dr2 As DataRow = DataTables("计划生成表").AddNew() dr2("执行日期")=drr("执行日期") dr2("ID编号")=drr("ID编号") dr2("有效任务编号")=drr("有效任务编号") dr2("原始地")=drr("原始地") dr2("目的地")=drr("目的地") dr2("筛币种")=drr("筛币种") ****** 上面赋值完日期,这里得把(id编号、有效编号、原始地、目的地、筛币种)赋值,不知道怎么再继续写了 Next |
|
-- 作者:foxbable_saber -- 发布时间:2015/4/27 10:08:00 -- bin 大: 没看懂如下代码: Dim dr2 As DataRow = DataTables("计划生成表").AddNew() ‘在“计划生成表”增加行数,以dr2变量产生数为依据! dr2("执行日期")=drr("执行日期") ‘drr怎么就声明为“执行日期”了?(这个是由”总表“中起始日期、结束日期、周期,筛出来的日期 ) dr2("ID编号")=drr("ID编号") dr2("有效任务编号")=drr("有效任务编号") dr2("原始地")=drr("原始地") dr2("目的地")=drr("目的地") dr2("筛币种")=drr("筛币种") 另外,您意思是让我如下代码来赋值?(上面仅仅是虚拟“筛选池”?) Dim Cols1() As String = { dr2("执行日期"); dr2("ID编号") ; dr2("有效任务编号"); dr2("原始地") ; dr2("目的地") ; dr2("筛币种") } ’这个声明列编写不规范 Dim Cols2() As String = { "执行日期" ; "ID编号" ; "有效任务编号" ; "原始地" ; "目的地" ; "筛币种" } Dim dr3 As DataRow = DataTables("计划生成表").AddNew() For i As Integer = 0 To Cols1.Length -1 dr3(Cols2(i)) = dr3(Cols1(i)) |
|
-- 作者:Bin -- 发布时间:2015/4/27 10:19:00 -- 不是,你按照我写的用就好,等你熟练后在转为蓝色代码.目前你蓝色代码还是错的. |
|
-- 作者:foxbable_saber -- 发布时间:2015/4/27 10:49:00 -- bin 大: 点击按钮后,计划生成表处无反应!!请给看看 |
|
-- 作者:Bin -- 发布时间:2015/4/27 10:56:00 -- 你这是要新增行,一开始就应该说清楚,你这个代码是基于现有行更新内容的. DataTables("计划生成表").DataRows.Clear Dim drs As List(Of DataRow) drs = DataTables("总表").Select("[需换钱否] = True") For Each dr As DataRow In drs Dim t As TimeSpan = dr("结束日期") - dr("起始日期") For i As Integer = 1 To t.TotalDays Dim dr2 As DataRow = DataTables("计划生成表").AddNew() Dim d As Date = dr("起始日期") dr2("执行日期")= d.AddDays(i) dr2("ID编号")=dr("ID编号") dr2("有效任务编号")=dr("有效任务编号") dr2("原始地")=dr("原始地") dr2("目的地")=dr("目的地") dr2("筛币种")=dr("筛币种") Next Next |
|
-- 作者:foxbable_saber -- 发布时间:2015/4/27 11:04:00 -- 谢! 目前看目的基本达到!是这个意思~~~我再融会贯通下。 下次争取给bin大表述清楚需求
|
|
-- 作者:foxbable_saber -- 发布时间:2015/4/27 14:54:00 -- bin 大: DataTables("计划生成表").DataRows.Clear Dim drs As List(Of DataRow) drs = DataTables("总表").Select("[需换钱否] = True") For Each dr As DataRow In drs Dim t As TimeSpan = dr("结束日期") - dr("起始日期") \'产生日期池后,如何再筛选出符合【总表】->【周期】列里的条件? For i As Integer = 1 To t.TotalDays Dim dr2 As DataRow = DataTables("计划生成表").AddNew() Dim d As Date = dr("起始日期") dr2("执行日期")= d.AddDays(i) dr2("ID编号")=dr("ID编号") dr2("有效任务编号")=dr("有效任务编号") dr2("原始地")=dr("原始地") dr2("目的地")=dr("目的地") dr2("筛币种")=dr("筛币种") Next Next [此贴子已经被作者于2015/4/27 15:00:20编辑过]
|
|
-- 作者:Bin -- 发布时间:2015/4/27 15:00:00 -- 没明白你的意思. |
|
-- 作者:foxbable_saber -- 发布时间:2015/4/27 15:07:00 -- 就是如下图: 结束日期-起始日期=日期池 24 25 26 27 28 29 30, 再根据【周期】列“周一 周三 周四 周五 周日”的日期 筛出最后日期! [此贴子已经被作者于2015/4/27 15:09:47编辑过]
|