以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一个特殊勾选逻辑列的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83744)

--  作者:douglas738888
--  发布时间:2016/4/15 17:19:00
--  一个特殊勾选逻辑列的问题
请教老师,下面这个例子有些特殊,不知道怎样写代码了。


问题:怎样实现表B的行勾选逻辑列“审批完成”,表A同步勾选对应列的三个不同的逻辑列“校对完成”,“审核完成”,“批准完成”。


前提:表A 与表B建立了关联,因为审核设计的需要,表B是由表A的行转换为列的,项目编号为关联列


表A      项目编号   校对人  校对完成     审核人  审核完成   批准人  批准完成
           001         赵宇       □       马云      □     刘明      


表B    项目编号  审批流  批准人   审批日期   审批意见   审批完成
       001      校对人  赵宇                             
       001      审核人  马云                             
       001      批准人  刘明                                


--  作者:大红袍
--  发布时间:2016/4/15 17:22:00
--  

不是很简单的跨表查询?

 

find对应的行,然后,给那一行赋值不就行了?


--  作者:douglas738888
--  发布时间:2016/4/15 17:27:00
--  
老师,行是可以查出来的,关键是:表B的审批完成行是多行要对应表A的一行,这个条件应该怎样定义,不是很清楚。

比如如下代码,怎样定义条件

If e.DataCol.Name = "审批完成" Then  
    If e.DataRow("审批完成") = True Then  
    Tables("表A").Current("设计程序_完成") = True
    Tables("表A").Current("校对程序_完成") = True
   End If
End If
[此贴子已经被作者于2016/4/15 17:36:54编辑过]

--  作者:大红袍
--  发布时间:2016/4/15 17:53:00
--  

比如

 

If e.DataCol.Name = "审批完成" Then
    Dim fdr As DataRow = DataTables("表A").find("项目编号 = \'" & e.DataRow("项目编号") & "\'")
    If fdr IsNot Nothing Then
        Dim str As String = e.DataRow("审批流")
        str = str.SubString(0, str.length-1)
        fdr(str & "完成") = e.DataRow("审批完成")
    End If
End If