以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何根据子表的日期区间生成主表的在职状态?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128404)

--  作者:lunengcheng
--  发布时间:2018/12/5 15:14:00
--  [求助]如何根据子表的日期区间生成主表的在职状态?
各位老师前辈,请教一下,我人员管理主表下面有一个离职管理的子表,主表有一列是“在职状态”列,现在需要根据离职管理子表的“离职日期”和“到期日期”生成主表的“在职状态”,判断方法是,如果当前的日期在“离职日期”和“到期日期”之间,则“在职状态”显示为“离职”,否则显示“在职”,我写了下面的代码,但是没产生作用,不知道哪里代码的问题,希望各位老师前辈给指点一下,多谢了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生成在职状态.txt


--  作者:有点甜
--  发布时间:2018/12/5 15:58:00
--  

子表,datacolchanged事件写代码


Select Case e.DataCol.name
    Case "离职日期", "到期日期"
        Dim bh10 As String = e.DataRow("编号")
        Dim ld10 As String
        Dim cmd10 As New SQLCommand
        cmd10.ConnectionName = "主数据源"
        cmd10.CommandText = "Select top 1 " & e.DataCol.name & " From {YW_人员管理离职管理} Where 编号 = \'" & bh10 & "\' Order  by 创建时间  Desc"
        ld10 = cmd10.ExecuteScalar()
        If ld10 <> Nothing andalso ld10 <= Date.Today Then
            e.datarow.getparentrow("父表名")("在职状态") = "离职"

        Else
            e.datarow.getparentrow("父表名")("在职状态") = "在职"
        End If
End Select


--  作者:有点甜
--  发布时间:2018/12/5 15:59:00
--  


Select Case e.DataCol.name
    Case "离职日期", "到期日期"
        If e.datarow("离职日期") <= Date.Today Then
            e.datarow.getparentrow("父表名")("在职状态") = "离职"

        Else
            e.datarow.getparentrow("父表名")("在职状态") = "在职"
        End If
End Select