Foxtable(狐表)用户栏目专家坐堂 → 【遍历】两个独立的遍历 怎么进行嵌套呢?


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

主题:【遍历】两个独立的遍历 怎么进行嵌套呢?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
【遍历】两个独立的遍历 怎么进行嵌套呢?  发帖心情 Post By:2017/11/11 11:56:00 [只看该作者]

1、两个独立的遍历 怎么进行嵌套呢?   当款物录入中的全部登记状态为归还时,才能对应案件编号=卷宗编号的数据 更改办理状态为办结状态
2、怎么实现代码执行一次,即可将当前所有状态变更表的数据都进行一次执行呢?效果要求按照1来进行!
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("款物序号") & "未归还")
        d("办理状态")="办理中"
        e.Cancel = True
        Return
    Else
        d("办理状态")="已办结"
    End If
Next


For Each dr1 As DataRow In DataTables("入库明细").Select("卷宗编号='" & d("编号") & "'")
    Dim dr21 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & d("编号") & "' and 分册编号='" & dr1("分册编号") & "'","录入时间 DESC")
    If dr21 IsNot Nothing AndAlso dr21("登记状态") <> "归还"
        msgbox(dr21("分册编号") & "未归还")
        d("办理状态")="办理中"
        e.Cancel = True
        Return
    Else
        d("办理状态")="已办结"
    End If
Next





下面是初步操作的结果  有没有更好的简洁写法呢?
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("款物序号") & "未归还")
        d("办理状态")="办理中"
        e.Cancel = True
        Return
    Else
        For Each dr1 As DataRow In DataTables("入库明细").Select("卷宗编号='" & d("编号") & "'")
            Dim dr21 As DataRow = DataTables("扫码录入").Find("卷宗编号='" & d("编号") & "' and 分册编号='" & dr1("分册编号") & "'","录入时间 DESC")
            If dr21 IsNot Nothing AndAlso dr21("登记状态") <> "归还"
                msgbox(dr21("分册编号") & "未归还")
                d("办理状态")="办理中"
                e.Cancel = True
                Return
            Else
                d("办理状态")="已办结"
            End If  
        Next
    End If 
Next
[此贴子已经被作者于2017/11/11 12:00:55编辑过]

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


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

没有必要嵌套,反而效率更低。

具体问题上传实例看看有没有变通的做法

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)没有必要嵌套,反而效率更低。具体问...  发帖心情 Post By:2017/11/11 14:44:00 [只看该作者]

例子附上

主要是状态变更表中的登记状态需要进行判断扫码录入及款物录入中的借出情况 归还情况来进行判断
比如卷1有借出  那就必须要归还了 才能将登记状态变更为已办结 否则只能为办理中
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:11101 - 副本.zip



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


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

哪个窗口哪个事件的功能?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)哪个窗口哪个事件的功能?  发帖心情 Post By:2017/11/13 13:42:00 [只看该作者]

有点蓝老师 是办理状态窗体里面的办结登记按钮事件代码  

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/13 15:08:00 [只看该作者]

回复1楼,你两段代码就是分开判断的,为什么要嵌套?直接写两端代码有什么问题?


 回到顶部