Foxtable(狐表)用户栏目专家坐堂 → 排产时间变更


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

主题:排产时间变更

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/25 15:25:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "实际开始日期"
        If e.oldvalue <> Nothing AndAlso e.oldvalue <> e.newvalue Then
            Dim sp As TimeSpan = e.newvalue-e.oldvalue
            For Each r As DataRow In e.DataTable.Select("加工顺序 > " & e.DataRow("加工循序"))
                r("实际完成日期") = cdate(r("实际开始日期")).AddSeconds(sp.TotalSeconds)
            Next
        End If
End Select
SystemReady = True


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/26 10:03:00 [显示全部帖子]

这个问题你很久以前问过啊,请参考之前给你写的代码啊

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=111698&authorid=0&page=0&star=1

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/26 10:17:00 [显示全部帖子]

单独做一个按钮执行代码

 

Dim dt As DataTable = DataTables("生产排产表")
Dim drs = dt.Select("", "加工顺序")
For i As Integer = 1 To drs.count-1
    Dim dr = drs(i-1)
    dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
    If dr("加工顺序") = drs(i)("加工顺序") Then
        drs(i)("实际开始日期") = dr("实际开始日期")
    Else
        If dr("使用设备") = drs(i)("使用设备") Then
            drs(i)("实际开始日期") = dr("实际完成日期")
        Else
            drs(i)("实际开始日期") = cdate(dr("实际开始日期")).AddHours(8)
        End If
    End If
    dr = drs(i)
    dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/26 11:09:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "实际开始日期"
        SystemReady = False
        If e.oldvalue <> Nothing AndAlso e.oldvalue <> e.newvalue Then
            Dim dt As DataTable = DataTables("生产排产表")
            Dim drs = dt.Select("加工顺序 > " & e.DataRow("加工循序"), "加工顺序")
            For i As Integer = 1 To drs.count-1
                Dim dr = drs(i-1)
                dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
                If dr("加工顺序") = drs(i)("加工顺序") Then
                    drs(i)("实际开始日期") = dr("实际开始日期")
                Else
                    If dr("使用设备") = drs(i)("使用设备") Then
                        drs(i)("实际开始日期") = dr("实际完成日期")
                    Else
                        drs(i)("实际开始日期") = cdate(dr("实际开始日期")).AddHours(8)
                    End If
                End If
                dr = drs(i)
                dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
            Next
        End If
        SystemReady = True
End Select

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/26 12:14:00 [显示全部帖子]

哦,代码改成

 

Select Case e.DataCol.Name
    Case "实际开始日期"
        SystemReady = False
        Dim dt As DataTable = e.DataTable
        Dim drs = dt.Select("加工顺序 >= " & e.DataRow("加工顺序"), "加工顺序")
        For i As Integer = 1 To drs.count-1
            Dim dr = drs(i-1)
            dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
            If dr("加工顺序") = drs(i)("加工顺序") Then
                drs(i)("实际开始日期") = dr("实际开始日期")
            Else
                If dr("使用设备") = drs(i)("使用设备") Then
                    drs(i)("实际开始日期") = dr("实际完成日期")
                Else
                    drs(i)("实际开始日期") = cdate(dr("实际开始日期")).AddHours(8)
                End If
            End If
            dr = drs(i)
            dr("实际完成日期") = cdate(dr("实际开始日期")).adddays(dr("计划数量") / dr("任务量"))
        Next
       
        SystemReady = True
End Select


 回到顶部