Foxtable(狐表)用户栏目专家坐堂 → 【求助】如果从两个记录表中获取状态,当某个编号下的所有明细全部为归还状态时,方可更改状态为已办结,反之,不能更改为已办结


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

主题:【求助】如果从两个记录表中获取状态,当某个编号下的所有明细全部为归还状态时,方可更改状态为已办结,反之,不能更改为已办结

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


加好友 发短信
等级:超级版主 帖子:112419 积分:572369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/30 21:16:00 [显示全部帖子]

方法1、先查找卷宗编号的所有入库明细的记录:http://www.foxtable.com/webhelp/scr/0400.htm
,然后循环到扫码录入表中查找是否有为归还的状态:http://www.foxtable.com/webhelp/scr/0396.htm

同样的方法到款物录入表是否有为归还的记录,只要查找到有一条未归还的记录就可以。

方法2、四个表合并成一个查询表,直接到查询表中使用find进行查找:http://www.foxtable.com/webhelp/scr/2322.htm

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


加好友 发短信
等级:超级版主 帖子:112419 积分:572369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/30 22:05:00 [显示全部帖子]

类似卷宗入库,DataColChanging事件

Select Case e.DataCol.Name
    Case "办理状态"
        For Each dr As DataRow In DataTables("入库明细").Select("卷宗编号='" & e.DataRow("卷宗编号") & "'")
            Dim dr2 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & e.DataRow("卷宗编号") & "' and 分册编号='" & dr("分册编号") & "'")
            If dr2 IsNot Nothing AndAlso dr2("登记状态") <> "归还"
                msgbox("未归还")
                e.Cancel = True
            End If
        Next
End Select



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


加好友 发短信
等级:超级版主 帖子:112419 积分:572369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/30 23:56:00 [显示全部帖子]

卷宗入库,DataColChanging事件

Select Case e.DataCol.Name
    Case "办理状态"
        For Each dr As DataRow In DataTables("入库明细").Select("卷宗编号='" & e.DataRow("卷宗编号") & "'")
            Dim dr2 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & e.DataRow("卷宗编号") & "' and 分册编号='" & dr("分册编号") & "' and 登记状态='归还'")
            If dr2 Is Nothing 
                msgbox("未归还")
                e.Cancel = True
            End If
        Next
End Select
[此贴子已经被作者于2017/10/30 23:57:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:112419 积分:572369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/31 16:29:00 [显示全部帖子]

Dim d  As Row=Tables("状态变更").Current

For Each dr As DataRow In DataTables("入库明细").Select("卷宗编号='" & d("编号") & "'")
    Dim dr2 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & d("编号") & "' and 分册编号='" & dr("分册编号") & "'","录入时间 DESC")
    If dr2 IsNot Nothing AndAlso dr2("登记状态") <> "归还"
        msgbox(dr2("分册编号") & "未归还")
        return
    Else
        Tables("办理状态_状态变更").AddNew()
        Tables("办理状态_状态变更").Current("案件编号")=d("案件编号")
        Tables("办理状态_状态变更").Current("名称")=d("名称")
        Tables("办理状态_状态变更").Current("操作人")=d("操作人")
        Tables("办理状态_状态变更").Current("变更类别")=d("变更类别")
        Tables("办理状态_状态变更").Current("变更时间")=Date.Now
    End If
    
Next

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


加好友 发短信
等级:超级版主 帖子:112419 积分:572369 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/31 17:33:00 [显示全部帖子]

Dim add As Boolean = True
For Each dr As DataRow In DataTables("入库明细").Select("卷宗编号='" & d("编号") & "'")
    Dim dr2 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & d("编号") & "' and 分册编号='" & dr("分册编号") & "'","录入时间 DESC")
    If dr2 IsNot Nothing AndAlso dr2("登记状态") <> "归还"
        msgbox(dr2("分册编号") & "未归还")
        add = False
        Exit For
    End If
Next
If add Then
    Tables("办理状态_状态变更").AddNew()
    Tables("办理状态_状态变更").Current("案件编号")=d("案件编号")
    Tables("办理状态_状态变更").Current("名称")=d("名称")
    Tables("办理状态_状态变更").Current("操作人")=d("操作人")
    Tables("办理状态_状态变更").Current("变更类别")=d("变更类别")
    Tables("办理状态_状态变更").Current("变更时间")=Date.Now
End If

 回到顶部