Foxtable(狐表)用户栏目专家坐堂 → 一个遍历问题


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

主题:一个遍历问题

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
一个遍历问题  发帖心情 Post By:2016/6/28 10:35:00 [只看该作者]

请教老师,下面这段代码,要实现同一个  任务索引  号下全部行的  审定完成  逻辑列为TRUE后, 投标商务副表  的   完成 列才为TRUE

我想应该是用遍历,但不知怎样来写

Dim pr As DataRow    '"投标商务待审_Table8 "对应的任务索引号的逻辑列全部勾选, 投标商务副表的审批完成,完成列才勾选视为完成审批
Dim cr As Row = Tables("投标商务待审_Table8").current
Dim c1 As Integer = cr.Table.Compute("count(任务索引)", "任务索引 = '" & cr("任务索引") & "'")
Dim c2 As Integer = cr.Table.Compute("count(任务索引)", "任务索引 = '" & cr("任务索引") & "' and 审定完成 = true")
pr = DataTables("投标商务副表").find("任务索引 = '" & cr("任务索引") & "'")
If pr IsNot Nothing Then
    pr("审批完成") = (c1 = c2)
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/28 10:38:00 [只看该作者]

 这个代码本身就没有问题。

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/6/28 11:02:00 [只看该作者]

老师,昨天您指导的代码,我加了条件,形成审核条件后,因为只加载是符合待审核条件的行,同一个索引任务号下其他待审的行不出现的情况下,只勾选符合待审条件的行,上表逻辑列就打钩了

Dim Filter As String = "审批人员 Like  '%" & _UserName & "%' and (审定确认 not Like '%" & _UserName & "%' or 审定确认 Is null) and 审批流程 Like '%编制程序_编制%'"  '待审条件

Tables("投标商务待审_Table8").Filter = "_Identify in (-1," & Tables("投标商务待审_Table8").DataTable.GetComboListString("_Identify", filter).replace("|", ",") & ")"


是否要修改这段代码
If e.DataCol.Name = "审定完成" Then '窗口投标策划,"投标商务副表时间审批"副本Table8勾选后,投标商务副表对应列打钩(出现多值,多值行勾选后,对应SQL投标商务副表才勾选对应逻辑列
    Dim fdr As DataRow = DataTables("投标商务副表").find("任务索引 = '" & e.DataRow("任务索引") & "'")  
       If fdr IsNot Nothing Then
         Dim str As String = e.DataRow("审批流程")
         If str.length >= 2 Then
            str = str.SubString(0,str.length -2)
            If fdr.DataTable.DataCols.Contains(str & "完成") Then
                If e.DataRow("审定完成") = False
                    fdr(str & "完成") = False
                Else
                    Dim c11 As Integer = e.DataTable.compute("count(任务索引)", "任务索引 = '" & e.DataRow("任务索引") & "' and 审批流程 = '" & e.DataRow("审批流程") & "'")
                    Dim c22 As Integer = e.DataTable.compute("count(任务索引)", "任务索引 = '" & e.DataRow("任务索引") & "' and 审定完成 = true  and 审批流程 = '" & e.DataRow("审批流程") & "'")                                  
                 fdr(str & "完成") = (c11 = c22)
                End If
            End If
       End If
    End If
End If
[此贴子已经被作者于2016/6/28 11:16:06编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/28 11:15:00 [只看该作者]

那代码就改一下

 

Dim pr As DataRow    '"投标商务待审_Table8 "对应的任务索引号的逻辑列全部勾选, 投标商务副表的审批完成,完成列才勾选视为完成审批
Dim cr As Row = Tables("投标商务待审_Table8").current
Dim c1 As Integer = cr.Table.datatable.Compute("count(任务索引)", "任务索引 = '" & cr("任务索引") & "'")
Dim c2 As Integer = cr.Table.datatable.Compute("count(任务索引)", "任务索引 = '" & cr("任务索引") & "' and 审定完成 = true")

pr = DataTables("投标商务副表").find("任务索引 = '" & cr("任务索引") & "'")
If pr IsNot Nothing Then
    pr("审批完成") = (c1 = c2)
End If


 回到顶部