Foxtable(狐表)用户栏目专家坐堂 → 报错求救


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

主题:报错求救

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
报错求救  发帖心情 Post By:2010/3/21 23:12:00 [只看该作者]

我在窗口按钮设置以下代码:
If Vars("用户组") = "管理员" and  Vars("用户组") <> "车间主管"
    With Tables("日报表")
        If .TopPosition > -1 Then
            For i as Integer = .TopPosition To .BottomPosition
                If .Rows(i)("审核") = False Then
                    .Rows(i)("审核") = True
                    .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                Else
                    .Rows(i)("审核") = False
                    .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                End If
            Next
        End If
    End With
End If
If Vars("用户组") = "车间主管"
    With Tables("日报表")
        If .TopPosition > -1 Then
            For i as Integer = .TopPosition To .BottomPosition
                If .Rows(i)("审核") = False Then
                    .Rows(i)("审核") = True
                    .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                End If
            Next
        End If
    End With
End If
如选定行>筛选行/2,就报错,代码执行筛选行的一半行数,比如我窗口表筛选出20行"审核" = False的数据,我选择其中11到20行都一样,点按钮,只执行10行,并提示。
提示如下。


图片点击可在新窗口打开查看此主题相关图片如下:未命名.gif
图片点击可在新窗口打开查看
请帮忙看看问题出在哪里
[此贴子已经被作者于2010-3-21 23:12:35编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/21 23:33:00 [只看该作者]

看不出了

[此贴子已经被作者于2010-3-21 23:34:19编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/21 23:58:00 [只看该作者]

If Vars("用户组") = "管理员" and  Vars("用户组") <> "车间主管"
    With Tables("日报表")
        If .TopPosition > -1 Then
            For i as Integer = .TopPosition To .BottomPosition
                If .Rows(i,True).IsGroup Then
                    Exit For
                else
                    If .Rows(i)("审核") = False Then
                        .Rows(i)("审核") = True
                        .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                    Else
                        .Rows(i)("审核") = False
                        .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                    End If
                end if
            Next
        End If
    End With
End If
If Vars("用户组") = "车间主管"
    With Tables("日报表")
        If .TopPosition > -1 Then
            For i as Integer = .TopPosition To .BottomPosition
                If .Rows(i,True).IsGroup Then
                    Exit For
                else
                    If .Rows(i)("审核") = False Then
                        .Rows(i)("审核") = True
                        .Rows(i)("审核人") = Tables("登陆")(0)("用户名") & " " & now
                    End If
                end if
            Next
        End If
    End With
End If


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/3/22 15:22:00 [只看该作者]

还是不行,应该是筛选的问题,请看示范文件,怎样在点按钮时,保持已筛选的行就好了(不是撤销筛选),谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目24.table

[此贴子已经被作者于2010-3-22 15:40:17编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/3/22 16:48:00 [只看该作者]

我们没办法。
筛选后对筛选列赋值,赋一个单元格的值就会隐藏一行,出现这种问题也就不奇怪了。

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


加好友 发短信
等级:幼狐 帖子:117 积分:1003 威望:0 精华:1 注册:2008/12/2 22:51:00
  发帖心情 Post By:2010/3/22 17:26:00 [只看该作者]

For i as Integer = .TopPosition To .BottomPosition
改为
For i as Integer = .BottomPosition To .TopPosition step -1

If .TopPosition > -1 Then
改为
If .BottomPosition > -1 Then
[此贴子已经被作者于2010-3-22 17:27:17编辑过]

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/3/22 19:36:00 [只看该作者]

 

6楼还是不行,如果有代码指定暂停筛选就好了,CurrentTable.ApplyFilter = False不行,显示所有行了,要求当前筛选不变。代码应该怎么写


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


加好友 发短信
等级:幼狐 帖子:117 积分:1003 威望:0 精华:1 注册:2008/12/2 22:51:00
  发帖心情 Post By:2010/3/22 20:34:00 [只看该作者]

在筛选状态下,随筛选结果变化的行变量是rows.count
你可以测试一下,执行公式过程中TopPosition BottomPosition两个参数的变化
在每次赋值后,outputshow()显示一下这连个参数的变化,有什么规律
就明白在筛选状态下,如何根据筛选结果进行行号的变化

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2010/3/22 23:18:00 [只看该作者]

要求当前筛选不变: 这样就要增加一列来判断了,筛选前先清空,筛选后勾上,执行1楼(修正后)代码后,再筛选出打勾的行来即可。 就是繁琐些了。

 回到顶部