Foxtable(狐表)用户栏目专家坐堂 → [求助]周期增加


  共有4382人关注过本帖树形打印复制链接

主题:[求助]周期增加

帅哥哟,离线,有人找我吗?
manyifuwu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
[求助]周期增加  发帖心情 Post By:2018/8/19 17:31:00 [只看该作者]

Dim dt As DataTable = DataTables("固定_table2")
Dim r As Row = Tables("客户资料").current
Dim sd As Date = r("开始日期")
Dim ed As Date = r("结束日期")
Dim d As Date = sd
Dim idx As Integer = 1
Dim month As Integer = d.Month - 1
Do While d <= ed
    If d.Month - month = 1 Then '1月
        If d.DayOfWeek =r("周") Then
            If idx = r("周期") Then '第几周
                output.show(d)
                Dim ndr = dt.addnew
                ndr("截止日期") = d
                ndr("编号") =r.DataRow("编号")
                month = d.month
                idx = 1
            Else
                idx += 1
            End If
        End If
    End If
    d = d.AddDays(1)
Loop

为什么1、选择日期18年10月至19年12月底,但只能生产18年12月底的订单。    只能添加开始日期当年的订单。??老师以上代码是那出错呢?

[此贴子已经被作者于2018/8/19 18:25:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 17:49:00 [只看该作者]

看不懂你的逻辑,上传实例看看

 回到顶部
帅哥哟,离线,有人找我吗?
manyifuwu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
[求助]周期增加  发帖心情 Post By:2018/8/19 18:21:00 [只看该作者]

例如:要添加2018年7月1日至2019年7月1日,窗口按钮添加,只能增加到2018年底。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb


[此贴子已经被作者于2018/8/19 20:39:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 20:55:00 [只看该作者]

Dim dt As DataTable = DataTables("派工")
Dim r As Row = Tables("客户资料").current
Dim sd As Date = r("开始日期")
Dim ed As Date = r("结束日期")
Dim d As Date = new Date(sd.Year,sd.Month,1)
Dim ndr As DataRow = dt.addnew
ndr("编号") =r.DataRow("编号")
Dim zq As Integer = r("周期")
Dim xq As Integer = r("周")
Dim dw As Integer = d.DayOfWeek
If dw = 0 Then dw = 7
Dim d1 As Date
If dw > xq Then
    d1= d.AddDays(7*zq - (dw - xq))
Else
    d1 = d.AddDays(xq - dw+7*(zq-1))
End If
If d1.Day < sd.Day Then
    d1 = d1.AddDays(Math.Ceiling((sd.Day - d1.Day) / 7) * 7)
End If
ndr("截止日期") = d1
d = d.AddMonths(1)

Do While d <= ed
    ndr = dt.addnew
    ndr("编号") =r.DataRow("编号")
    ndr("截止日期") = d
    dw  = d.DayOfWeek
    If dw = 0 Then dw = 7
    If dw > xq Then
        ndr("截止日期") = d.AddDays(7*zq - (dw - xq))
    Else
        ndr("截止日期") = d.AddDays(xq - dw+7*(zq-1))
    End If
    
    d = d.AddMonths(1)
Loop

 回到顶部
帅哥哟,离线,有人找我吗?
manyifuwu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/8/26 20:50:00 [只看该作者]

如果我想新增一个按钮。 固定增加:每月最后一个星期几?怎么写代码呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/26 22:57:00 [只看该作者]

参考代码

 

Dim y As Integer = 2018
Dim m As Integer = 8
Dim wd As Integer = 3 '星期三
Dim d As Date = new Date(y,m,1)
d = d.AddMonths(1).AddDays(-1)
Do While True
    If d.DayOfWeek = wd Then
        msgbox(d)
        Exit Do
    End If
    d = d.AddDays(-1)
Loop


 回到顶部
帅哥哟,离线,有人找我吗?
manyifuwu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2018/8/27 0:54:00 [只看该作者]

Dim dt As DataTable = DataTables("固定_table2")
Dim r As Row = Tables("客户资料").current
Dim sd As Date = r("执行日期")
Dim ed As Date = r("到期日期")
Dim d As Date = sd
Dim y As Integer = 2018
Dim m As Integer = 8
Dim wd As Integer =r("周")  Then ’3 '星期三
Dim d As Date = new Date(y,m,1)
d = d.AddMonths(1).AddDays(-1)
Do While True
    If d.DayOfWeek = wd Then
        msgbox(d)
        Exit Do
        ndr("日期") = d
        ndr("编号") =r.DataRow("编号")

       
       
    End If
    d = d.AddDays(-1)
Loop

抱歉不能举一反三。

客户资料表有三列“”周“执行日期”到期日期‘’列     派工表有两列: 日期 列   和  编号 列  。希望通过按钮代码,添加执行日期和到期日期这个时间段里的,每月最后一个星期几的行。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/27 9:03:00 [只看该作者]

Dim dt As DataTable = DataTables("派工")
Dim r As Row = Tables("客户资料").current
Dim sd As Date = r("开始日期")
Dim ed As Date = r("结束日期")
Dim wd As Integer =r("周")

Do While sd <= ed
    Dim y As Integer = sd.year
    Dim m As Integer = sd.month
    Dim d As Date = new Date(y,m,1)
    d = d.AddMonths(1).AddDays(-1)
    Do While True
        If d >= sd AndAlso d <= ed AndAlso d.DayOfWeek = wd Then
            Dim ndr = dt.addnew
            ndr("截止日期") = d
            ndr("编号") =r.DataRow("编号")
            sd = (new Date(y,m,1)).addmonths(1)
            Exit Do           
        End If
        d = d.AddDays(-1)
    Loop   
Loop


 回到顶部