Foxtable(狐表)用户栏目专家坐堂 → 获取数据


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

主题:获取数据

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
获取数据  发帖心情 Post By:2022/3/2 19:45:00 [只看该作者]

我想在“补助发放”窗体中实现:选择发放日期,后点击生成本期工资,请问指教,谢谢!
1、前6列自动从“被征地农民基本情况”表中获取,
2、参加保险情况从“参加保险明细表”中获取,死亡情况从“死亡人员明细表”中获取;
3、是否结清从“参加保险明细表”和“死亡人员明细表”中获取
4、补助依据及期限说明:见附件的excel表中

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/2 19:56:00 [只看该作者]

链接:https://pan.baidu.com/s/1zGUT8GnthtFpSWzyJ_tVKg 
提取码:0jjx 
--来自百度网盘超级会员V4的分享

链接:https://pan.baidu.com/s/1raeyDuc48yPop9BvOgfMAg 
提取码:zcgs 
--来自百度网盘超级会员V4的分享

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

把3个表通过身份证号关联为一个查询表:http://www.foxtable.com/webhelp/topics/2322.htm
选择日期后对查询表进行筛选:http://www.foxtable.com/webhelp/topics/1058.htm
然后把筛选的数据取需要的列填充到窗口表即可:http://www.foxtable.com/webhelp/topics/0680.htmhttp://www.foxtable.com/webhelp/topics/1533.htm

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/3 10:48:00 [只看该作者]

因为补助发放标准要涉及年龄、性别、参保状况、是否结清等因素,准确获取”月补助标准”我觉得比较复杂,利用查询表又不能保存,还是想请老师将我上传的实例打开看下,谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/3 11:01:00 [只看该作者]

年龄、性别、参保状况、是否结清等因素,对准确获取”月补助标准”有什么影响?

最终是要把查询表的数据填充到窗口表,窗口表能够保存即可,查询表能不能保存有什么影响?

请根据3楼的提示自己先动手做一做,什么地方不通再说
[此贴子已经被作者于2022/3/3 11:01:26编辑过]

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/3 17:12:00 [只看该作者]

获取数据部分数据时我下面的代码,怎么出现了死循环,且没能获取到任何数据,请指教,谢谢!
Tables("补助发放表").StopRedraw()
For n As Integer = 0 To Tables("被征地农民基本情况").Rows.Count -1
    Dim dt1 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
    Dim dr As DataRow = DataTables("被征地农民基本情况").find("土地交付日期 <= #" & dt1.value & "#")
    If dr IsNot Nothing Then
        Dim r As Row = Tables("补助发放表").AddNew()
        r("姓名") = dr("姓名")
        r("身份证号码")=dr("身份证号码")
        r("账号")=dr("账号")
        r("开户行")=dr("开户行")
        r("所属期")=dt1.Value
    End If
Next
Tables("补助发放表").ResumeRedraw()
DataTables("补助发放表").Save

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/3 17:41:00 [只看该作者]

这个代码本身不可能有死循环,如果数据比较多,循环完肯定需要一定时间。

如果要根据条件取数据 ,应该这样

Tables("补助发放表").StopRedraw()
    Dim dt1 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
For each dr As DataRow in DataTables("被征地农民基本情况").select("土地交付日期 <= #" & dt1.value & "#")
        Dim r As Row = Tables("补助发放表").AddNew()
        r("姓名") = dr("姓名")
        r("身份证号码")=dr("身份证号码")
        r("账号")=dr("账号")
        r("开户行")=dr("开户行")
        r("所属期")=dt1.Value
Next
Tables("补助发放表").ResumeRedraw()
DataTables("补助发放表").Save

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/3 22:50:00 [只看该作者]

我在"补助发放表"的datacolchanged事件中用如下代码获取“本期应发总额”,怎么没有反应的?请指教,谢谢!
Select Case e.DataCol.Name
    Case "本期年龄","性别"
        For Each r1 As DataRow In DataTables("补助发放表").DataRows
            If r1("性别") ="男" And r1("本期年龄")>0 And r1("本期年龄")<16 Then
                r1("本期应发总额")=50
            End If
            If r1("性别") ="男" And r1("本期年龄")>=16 And r1("本期年龄")<18 Then
                r1("本期应发总额")=200
            End If
            If r1("性别") ="男" And r1("本期年龄")>=18 And r1("本期年龄")<20 Then
                r1("本期应发总额")=100
            End If
            If r1("性别") ="男" And r1("本期年龄")>=20 And r1("本期年龄")<50 Then
                r1("本期应发总额")=80
            End If
            If r1("性别") ="男" And r1("本期年龄")>=50 And r1("本期年龄")<6 Then
                r1("本期应发总额")=200
            End If
        Next
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/3 22:56:00 [只看该作者]

需要"本期年龄","性别"数据变化才会触发事件,或者重置列:http://www.foxtable.com/webhelp/topics/1469.htm

这个事件里不应该使用遍历
Select Case e.DataCol.Name
    Case "本期年龄","性别"
dim r1 As DataRow = e.datarow
            If r1("性别") ="男" 
if  r1("本期年龄")>0 And r1("本期年龄")<16 Then
                r1("本期应发总额")=50
elseif r1("本期年龄")>=16 And r1("本期年龄")<18 Then
                r1("本期应发总额")=200
elseif r1("本期年龄")>=18 And r1("本期年龄")<20 Then
                r1("本期应发总额")=100
elseif r1("本期年龄")>=20 And r1("本期年龄")<50 Then
                r1("本期应发总额")=80
elseif r1("本期年龄")>=50 or r1("本期年龄")<6 Then
                r1("本期应发总额")=200
            End If
end if
End Select

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/4 17:43:00 [只看该作者]

我用下面代码获取“年龄段”,应该每行都应该有年龄段生成的,实际只有部分行有值,请指教,谢谢!
Select Case e.DataCol.Name
    Case "征地时年龄","性别"
        Dim r1 As DataRow = e.DataRow
        If r1("性别") ="男"
            If  r1("征地时年龄")>0 And r1("征地时年龄")<16 Then
                r1("年龄段")="一"
            ElseIf r1("征地时年龄")>=16 And r1("征地时年龄")<50 Then
                r1("年龄段")="二"
            ElseIf r1("征地时年龄")>=50 And r1("征地时年龄")<60 Then
                r1("年龄段")="三"
            Else
                r1("年龄段")="四"
            End If
            If r1("性别") ="女"
                If  r1("征地时年龄")>0 And r1("征地时年龄")<16 Then
                    r1("年龄段")="一"
                ElseIf r1("征地时年龄")>=16 And r1("征地时年龄")<45 Then
                    r1("年龄段")="二"
                ElseIf r1("征地时年龄")>=45 And r1("征地时年龄")<55 Then
                    r1("年龄段")="三"
                Else
                    r1("年龄段")="四"
                End If
            End If
        End If
End Select

 回到顶部
总数 26 1 2 3 下一页