Foxtable(狐表)用户栏目专家坐堂 → [求助]表事件DataColChanged请教


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

主题:[求助]表事件DataColChanged请教

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/28 11:32:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "日期" '
if e.OldValue <> nothing
        Dim dr As DataRow = DataTables("查询").Find("日期 = #" & e.OldValue & "#")
        If dr Is Nothing Then 
            dr = DataTables("查询").AddNew()
            dr("日期") = e.DataRow("日期")
            dr("序号") = e.DataRow("序号")
            dr("材料名称") = e.DataRow("材料名称")
            dr("规格型号") = e.DataRow("规格型号")
            dr("工序") = e.DataRow("工序")
            dr("数量") = e.DataRow("数量")
            dr("员工") = e.DataRow("员工")
            dr("备注") = e.DataRow("备注")
        Else
            dr("日期") = e.DataRow("日期")
        End If
endif
    Case "序号","材料名称","规格型号","工序","数量","员工","备注"
        Dim dr As DataRow = DataTables("查询").Find("日期 = #" & e.DataRow("日期") & "#")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select
[此贴子已经被作者于2019/8/28 11:32:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/28 13:44:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("序号") = Nothing
        Else
            '
            Dim dr As DataRow = DataTables("查询").Find("日期 = #" & e.NewValue & "#")
            If dr Is Nothing Then
                dr = DataTables("查询").AddNew()
                dr("日期") = e.DataRow("日期")
                dr("序号") = e.DataRow("序号")
                dr("材料名称") = e.DataRow("材料名称")
                dr("规格型号") = e.DataRow("规格型号")
                dr("工序") = e.DataRow("工序")
                dr("数量") = e.DataRow("数量")
                dr("员工") = e.DataRow("员工")
                dr("备注") = e.DataRow("备注")
            Else
                dr("日期") = e.DataRow("日期")
            End If

            Dim bh As String = Format(e.DataRow("日期"),"yyyyMMdd") '取得编号的8位前缀
            If e.DataRow("序号").StartsWith(bh) = False '如果编号的前8位不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(序号)","日期 = #" & e.DataRow("日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(9,4)) + 1 '获得最大编号的后四位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("序号") = bh & "-" & Format(idx,"0000")
            End If
        End If
    Case "序号","材料名称","规格型号","工序","数量","员工","备注"
        If e.DataRow.IsNull("日期") = False Then
            Dim dr As DataRow = DataTables("查询").Find("日期 = #" & e.DataRow("日期") & "#")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/28 15:37:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/28 16:26:00 [显示全部帖子]

Case "序号","材料名称","规格型号","工序","数量","员工","备注"
        If e.DataRow.IsNull("日期") = False Then
            for each dr As DataRow in DataTables("查询").select("日期 = #" & e.DataRow("日期") & "#")
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            next
        End If

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


加好友 发短信
等级:超级版主 帖子:107872 积分:548723 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/28 17:51:00 [显示全部帖子]

Dim dr As DataRow = DataTables("查询").Find("日期 = #" & e.NewValue & "#")

 回到顶部