Foxtable(狐表)用户栏目专家坐堂 → 关于重置列


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

主题:关于重置列

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
关于重置列  发帖心情 Post By:2017/6/27 11:41:00 [只看该作者]

我下面这句代码写错了吗?
'人为重置列
Tables("员工清单.离职记录").DataTable.DataCols("离职日期").RaiseDataColChanged()

不会引发相关列的重算,但点击狐表菜单上的重置列就可以,请问是什么原因,谢谢!

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/6/27 11:43:00 [只看该作者]

我写在了窗口的Afterload事件里

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/6/27 11:53:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "离职日期"
        If dr.Isnull("离职日期")=False Then
            Dim pr As DataRow = dr.GetParentRow("员工清单")
            If pr IsNot Nothing Then
                Dim y,m,d As Integer
                Dim dt1 As Date = pr("入职时间")
                Dim dt2 As Date = dr("离职日期")
                DateYMD(dt1,dt2,y,m,d)
                dr("工作年数")=y
                dr("工作月数")=y*12+m
                '---------------------------------计算服装折旧-------------------------------------------------
                Dim drs As List(of DataRow)  = DataTables("工服管理").SQLSelect("员工编号='" & dr("员工编号") & "' and 参与计算=1")
                Dim sumTotal As  Decimal
                For Each r As DataRow In drs
                    Select Case r("新旧")
                        Case "新"
                            Dim y1,m1,d1 As Integer
                            Dim dt_1 As Date = r("领用日期")
                            Dim dt_2 As Date = dr("离职日期")
                            DateYMD(dt_1,dt_2,y1,m1,d1)
                            m1=m1+IIF(D1>=15,1,0)
                            If y1>=2 Then
                                sumTotal = sumTotal+ 0
                            ElseIf y1*12+m1<3 Then
                                sumTotal = sumTotal+ 100+r("干洗费")*r("数量")
                            Else
                                sumTotal =sumTotal+(r("月折旧额")*(r("折旧月数")-(y1*12+m1)))
                            End If
                        Case "旧"
                            Dim y1,m1,d1 As Integer
                            Dim dt_1 As Date = r("领用日期")
                            Dim dt_2 As Date = dr("离职日期")
                            DateYMD(dt_1,dt_2,y1,m1,d1)
                            m1=m1+IIF(D1>=15,1,0)
                            If y1>=1 Then
                                sumTotal = sumTotal+ 0
                            Else
                                sumTotal =sumTotal+(r("月折旧额")*(r("折旧月数")-(y1*12+m1)))
                            End If
                    End Select
                Next
                sumTotal = Math.round(sumTotal,2)
                dr("服装折旧")=sumTotal
                '---------------------------------计算培训扣款-------------------------------------------------
                Dim drs1 As List(of DataRow)  = DataTables("培训管理").SQLSelect("员工编号='" & dr("员工编号") & "' and 参与计算=1")
                Dim studyTotal As  Decimal
                For Each r As DataRow In drs1
                    Dim y2,m2,d2 As Integer
                    Dim dtStart As Date = r("签约结束日期")
                    Dim dtEnd As Date = dr("离职日期")
                    DateYMD(dtStart,dtEnd,y2,m2,d2)
                    m2=m2+IIF(d2>=15,1,0)
                    If y2*12+m2<=0 Then
                        studyTotal = studyTotal+ 0
                    Else
                        studyTotal =studyTotal+(y2*12+m2)*(r("培训费用")/r("合同月数"))
                    End If
                Next
                studyTotal = Math.round(studyTotal,2)
                dr("培训扣款")=studyTotal               
            End If
        Else
            dr("工作年数")=Nothing
            dr("工作月数")=Nothing
            dr("服装折旧")=Nothing
            dr("培训扣款")=Nothing
        End If
End Select

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/6/27 11:53:00 [只看该作者]

这个是事件代码!

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/6/27 11:59:00 [只看该作者]

DataTables("离职记录").DataCols("离职日期").RaiseDataColChanged()

这样写也不行,非要点窗口的重置按钮。

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


加好友 发短信
等级:六尾狐 帖子:1247 积分:9428 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/6/27 12:08:00 [只看该作者]

传实例看看,3楼事件代码中没见重置列的代码呀?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/27 12:17:00 [只看该作者]

 是不是你表名写错了啊,你的是窗口表?试试

 

e.Form.Controls("Table1").Table.DataTable.DataCols("离职日期").RaiseDataColChanged()

 

[此贴子已经被作者于2017/6/27 12:47:41编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1247 积分:9428 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/6/27 12:25:00 [只看该作者]

e.Form.Controls("Table1").Table.DataTable.DataCols("离职日期").RaiseDataColChanged()

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2017/6/27 12:51:00 [只看该作者]

还是不行,3楼的代码是dataColChanged的代码,重置列的代码我是写在窗口的Afterload事件里。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/27 12:56:00 [只看该作者]

 上传实例说明。

 回到顶部
总数 12 1 2 下一页