以文本方式查看主题

-  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表生成行并赋值!【已解决】
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 d As Date = Cdate(dr("起始日期")).AddDays(i)
        Dim dw As Integer = IIF(d.DayOfWeek=0,7,d.DayOfWeek)
        If dr("周期").Contains(dw) Then
            Dim dr2 As DataRow = DataTables("计划生成表").AddNew()
            dr2("执行日期")= d
            dr2("ID编号")=dr("ID编号")
            dr2("有效任务编号")=dr("有效任务编号")
            dr2("原始地")=dr("原始地")
            dr2("目的地")=dr("目的地")
            dr2("筛币种")=dr("筛币种")
        End If
    Next
Next


此主题相关图片如下:1234123213.jpg
按此在新窗口浏览图片


[此贴子已经被作者于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 大:

点击按钮后,计划生成表处无反应!!请给看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:货币转换项目.foxdb



--  作者: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,
再根据【周期】列“周一 周三 周四 周五 周日”的日期 筛出最后日期!


图片点击可在新窗口打开查看此主题相关图片如下:1234123213.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2015/4/27 15:09:47编辑过]