Foxtable(狐表)用户栏目专家坐堂 → 跨表引用问题,请教各位老师


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

主题:跨表引用问题,请教各位老师

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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
跨表引用问题,请教各位老师  发帖心情 Post By:2019/9/3 9:36:00 [只看该作者]

主表有若干人任若干职务,设计了个弹窗,在弹出时对照机构显示职务空缺情况,代码如下,总是弹窗错误,请教老师问题在哪?请老师们指导
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:村干部信息系统.table

If Forms("职务空缺情况").Opened
For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null")
    Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = '" & dr("工作单位_镇街") & "' and 工作单位_村居社区 = '" & dr("工作单位_村居社区") & "'")
      If fdr("职务排序") = "01" Then
         dr("书记") = fdr("姓名")
      Else
         dr("书记") = "空缺"
     End If
     If fdr("职务排序") = "02" Then
         dr("主任") = fdr("姓名")
      Else
         dr("主任") = "空缺"
     End If
     If fdr("职务排序") = "03" Then
        dr("会计") = fdr("姓名")
     Else
       dr("会计") = "空缺"
     End If
Next
End If

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


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

哪个表,或者哪个窗口的什么事件?没看到有这段代码

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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
  发帖心情 Post By:2019/9/3 9:57:00 [只看该作者]

窗口是 “职数空缺情况”  ,事件是 这个窗口的afterload事件,主页左下角按钮弹窗

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


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

首先窗口名称是错的。其次凡是Find查询的结果都必须判断一下是否为空,比如查询没有结果

If Forms("职数空缺情况").Opened
    For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null")
        Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = '" & dr("工作单位_镇街") & "' and 工作单位_村居社区 = '" & dr("工作单位_村居社区") & "'")
        If fdr IsNot Nothing
            If fdr("职务排序") = "01" Then
                dr("书记") = fdr("姓名")
            Else
……

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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
  发帖心情 Post By:2019/9/3 10:19:00 [只看该作者]

If Forms("职数空缺情况").Opened
For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null")
    Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = '" & dr("工作单位_镇街") & "' and 工作单位_村居社区 = '" & dr("工作单位_村居社区") & "'")
     If fdr IsNot Nothing
      If fdr("职务排序") = "01" Then
         dr("书记") = fdr("姓名")
      Else
         dr("书记") = "空缺"
     End If
     If fdr("职务排序") = "02" Then
         dr("主任") = fdr("姓名")
      Else
         dr("主任") = "空缺"
     End If
     If fdr("职务排序") = "03" Then
        dr("会计") = fdr("姓名")
     Else
       dr("会计") = "空缺"
     End If
End If
Next
End If

谢谢老师,改过了,但是主任、会计列都没用,显示的都是空缺
另:如果想窗口退出上述内容还清除该怎么办
[此贴子已经被作者于2019/9/3 10:21:51编辑过]

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


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

1、find只返回一条数据,其它当然没用了,改为select进行遍历

2、不要保存数据,然后使用:RejectChanges:http://www.foxtable.com/webhelp/topics/1538.htm,或者遍历这个窗口表,把数据清空
For Each r As Row In Tables("职数空缺").Rows
   
r("主任") = nothing
Next

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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
  发帖心情 Post By:2019/9/3 10:42:00 [只看该作者]


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

显示错误,不知道为什么

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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
  发帖心情 Post By:2019/9/3 10:49:00 [只看该作者]

另外,“空缺”用红字显示可以吗

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


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

7楼的错误请认真看一看select的帮助和用法,而不仅仅是把find改为select。


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


加好友 发短信
等级:幼狐 帖子:63 积分:597 威望:0 精华:0 注册:2019/7/25 11:01:00
  发帖心情 Post By:2019/9/3 11:38:00 [只看该作者]

不好意思,研究了一下,再请老师指导

If Forms("职数空缺情况").Opened
For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null")
    Dim fdr As List(of DataRow) = DataTables("村干部基本信息").Select("工作单位_镇街 = '" & dr("工作单位_镇街") & "' and 工作单位_村居社区 = '" & dr("工作单位_村居社区") & "'")
     If fdr IsNot Nothing
        For Each n As DataRow In fdr
          If n("职务排序") = "01" Then
         dr("书记") = n("姓名")
      Else
         dr("书记") = "空缺"
     End If
     If n("职务排序") = "02" Then
         dr("主任") = n("姓名")
      Else
         dr("主任") = "空缺"
     End If
     If n("职务排序") = "03" Then
        dr("会计") = n("姓名")
     Else
       dr("会计") = "空缺"
     End If
Next
End If
Next
End If



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