以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【遍历】两个独立的遍历 怎么进行嵌套呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109415) |
-- 作者:李孝春 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/11/11 14:25:00 -- 没有必要嵌套,反而效率更低。 具体问题上传实例看看有没有变通的做法
|
-- 作者:李孝春 -- 发布时间:2017/11/11 14:44:00 -- 回复:(有点蓝)没有必要嵌套,反而效率更低。具体问... 例子附上 主要是状态变更表中的登记状态需要进行判断扫码录入及款物录入中的借出情况 归还情况来进行判断 比如卷1有借出 那就必须要归还了 才能将登记状态变更为已办结 否则只能为办理中
|
-- 作者:有点蓝 -- 发布时间:2017/11/11 15:30:00 -- 哪个窗口哪个事件的功能? |
-- 作者:李孝春 -- 发布时间:2017/11/13 13:42:00 -- 回复:(有点蓝)哪个窗口哪个事件的功能? 有点蓝老师 是办理状态窗体里面的办结登记按钮事件代码 |
-- 作者:有点甜 -- 发布时间:2017/11/13 15:08:00 -- 回复1楼,你两段代码就是分开判断的,为什么要嵌套?直接写两端代码有什么问题? |