Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:报错求救

1楼
wqc360 发表于: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编辑过]
2楼
mr725 发表于:2010/3/21 23:33:00

看不出了

[此贴子已经被作者于2010-3-21 23:34:19编辑过]
3楼
程兴刚 发表于: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

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

[此贴子已经被作者于2010-3-22 15:40:17编辑过]
5楼
czy 发表于:2010/3/22 16:48:00
我们没办法。
筛选后对筛选列赋值,赋一个单元格的值就会隐藏一行,出现这种问题也就不奇怪了。
6楼
ssqq 发表于: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编辑过]
7楼
wqc360 发表于:2010/3/22 19:36:00

 

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

8楼
ssqq 发表于:2010/3/22 20:34:00
在筛选状态下,随筛选结果变化的行变量是rows.count
你可以测试一下,执行公式过程中TopPosition BottomPosition两个参数的变化
在每次赋值后,outputshow()显示一下这连个参数的变化,有什么规律
就明白在筛选状态下,如何根据筛选结果进行行号的变化
9楼
e-png 发表于:2010/3/22 23:18:00
要求当前筛选不变: 这样就要增加一列来判断了,筛选前先清空,筛选后勾上,执行1楼(修正后)代码后,再筛选出打勾的行来即可。 就是繁琐些了。
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 3 queries.