以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下一行逻辑列勾选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87274)

--  作者:douglas738888
--  发布时间:2016/7/7 10:51:00
--  下一行逻辑列勾选问题
请教老师,我想实现,比如:

同一个编号下有5行,当上一行逻辑列勾选后,下一行逻辑列自动勾选,一直到最后一行勾选后停止,不同的编号下依次执行

我写了部分代码,其他的不会写了,请老师指导下下   

代码放在 DataColChanged合适还是放在AfterEdit合适)

If e.Col.name="签批完成" AndAlso e.Row.IsNull("签批完成")=False Then
    If e.Row.Index<e.Table.Rows.count Then
        If e.Table.Rows(e.Row.Index+1).IsNull("签批完成") Then
            e.Table.Rows(e.Row.Index+1)("签批完成")="True"
    End If
 End If
End If

--  作者:大红袍
--  发布时间:2016/7/7 11:01:00
--  
If e.Col.name="签批完成" AndAlso e.Row("签批完成")=True Then
    e.Table.DataTable.replacefor("签批完成", True, "编号 = \'" & e.row("编号") & "\'")
End If

--  作者:douglas738888
--  发布时间:2016/7/7 11:08:00
--  
大红袍老师,同一个编号下,不是全部勾选,是上一行勾选后,下一行才自动勾选,如果有4行,第1行勾选后,第2行才自动勾选,第2行勾选后,第3行才自动勾选....
--  作者:大红袍
--  发布时间:2016/7/7 11:18:00
--  
If e.Col.name="签批完成" AndAlso e.Row("签批完成")=True Then
    e.Table.DataTable.replacefor("签批完成", True, "编号 = \'" & e.Row("编号") & "\' and _Sortkey >= " & e.row("_Sortkey"))
End If

--  作者:douglas738888
--  发布时间:2016/7/7 11:40:00
--  
老师,还是全部勾选,_Sortkey的排序没有形成,我做了个例子,再请老师看看    表E
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb




--  作者:大红袍
--  发布时间:2016/7/7 11:49:00
--  
 我测试没有问题啊。你去掉所有的勾选,再测试。
--  作者:douglas738888
--  发布时间:2016/7/7 12:14:00
--  
大红袍老师,对不起!   您的代码是对的,是我的设计逻辑有错误,我又增加一列“流转勾选”用于提示下一个流程才能合理

应该是这样来实现:    第1行的 签批完成 打钩后  ,第2行的 流转勾选  打钩  ,第2行的 签批完成 打钩后, 第3行的 流转勾选  打钩 

老师再帮忙看看实例

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


[此贴子已经被作者于2016/7/7 12:14:21编辑过]

--  作者:大红袍
--  发布时间:2016/7/7 12:22:00
--  
If e.Col.name="签批完成" AndAlso e.Row("签批完成")=True Then
    Dim fdr As DataRow = e.Table.DataTable.find("项目编号 = \'" & e.Row("项目编号") & "\' and _Sortkey >= " & e.Row("_Sortkey") & " and _Identify <> " & e.Row("_Identify"), "_Sortkey ")
    If fdr IsNot Nothing Then
        fdr("流转勾选") = True
    End If
End If