Foxtable(狐表)用户栏目专家坐堂 → 按条件提取数据


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

主题:按条件提取数据

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


加好友 发短信
等级:一尾狐 帖子:471 积分:4014 威望:0 精华:0 注册:2018/5/13 15:18:00
按条件提取数据  发帖心情 Post By:2020/10/14 18:11:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
“绩效明细”表里“工作量”列,在“工作量”表中按如下条件提取。
如果“工作量”表中的“人员类别”列是“统考多科”,那么就在“工作量”表中查找姓名相同“工作量得分”并求和。否则就直接查找到相同姓名的人填充过来。应该怎样写代码呢?

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


加好友 发短信
等级:一尾狐 帖子:471 积分:4014 威望:0 精华:0 注册:2018/5/13 15:18:00
  发帖心情 Post By:2020/10/14 19:01:00 [只看该作者]

模仿写了一个,代码有点乱,功能实现了。请蓝版修改下。
Dim dr14 As DataRow
If e.DataCol.name = "教师ID" OrElse e.DataCol.name = "人员类别" OrElse e.DataCol.name = "姓名"
    Dim sum As Double = DataTables("工作量").Compute("Sum(工作量得分)", "教师ID = '" & e.DataRow("教师ID") & "' and 人员类别 = '" & e.DataRow("人员类别") & "' and 姓名 = '" & e.DataRow("姓名") & "'")
    dr14 = DataTables("工作量").find("教师ID = '" & e.DataRow("教师ID") & "'")
    
    If e.DataRow.isnull(e.DataCol.name) = False
        If e.DataRow("人员类别") = "统考多科"
            e.DataRow("工作量") = round2(sum,2)
        Else
            Dim dr15 As DataRow
            ',否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr15= DataTables("工作量").Find("[姓名] = '" & e.NewValue & "'")
            If dr15 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("工作量") = dr14("工作量得分")
            End If
        End If
        
    Else
        e.DataRow("工作量") = Nothing
    End If
End If

[此贴子已经被作者于2020/10/14 19:01:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/15 8:40:00 [只看该作者]

If e.DataCol.name = "教师ID" OrElse e.DataCol.name = "人员类别" OrElse e.DataCol.name = "姓名"
    If e.DataRow.isnull("教师ID")  OrElse e.DataRow.isnull("人员类别") OrElse e.DataRow.isnull("姓名")
        e.DataRow("工作量") = Nothing
    Else
        If e.DataRow("人员类别") = "统考多科"
            Dim sum As Double = DataTables("工作量").Compute("Sum(工作量得分)", "教师ID = '" & e.DataRow("教师ID") & "' and 人员类别 = '" & e.DataRow("人员类别") & "' and 姓名 = '" & e.DataRow("姓名") & "'")
            e.DataRow("工作量") = round2(sum,2)
        Else
            Dim dr15 As DataRow = DataTables("工作量").Find("教师ID = '" & e.DataRow("教师ID") & "' and [姓名] = '" & e.NewValue & "'")
            If dr15 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("工作量") = dr14("工作量得分")
            Else
                e.DataRow("工作量") = Nothing
            End If
        End If
    End If
End If

 回到顶部