以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  【求助】移动单元格和改变全局变量问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=143514)

--  作者:狐表(小白)
--  发布时间:2019/11/27 14:18:00
--  【求助】移动单元格和改变全局变量问题
各位老师,举例:有两个窗口:
窗口1表table1有三列“姓名”、“”部门“”,“职位“,通过提取部门列的值作为变量;每次根据变化焦点单元格的值,来改变全局变量“gxmc”的值并打开窗口2;
窗口2“销售分析”;通过获取“gxmc”的值来显示不同部门的分析图表;并且在窗口2计时器代码执行窗口关闭时,通过afterclose改变全局变量“i”的值来移动窗口1table1的当前行位置;
通过设置table1窗口的双击事件代码,手动双击“部门”列不同行的值来测试窗口2显示不同部门图表的功能已经解决了,现在想通过增加计时器代码自动模拟鼠标点击,实现窗口1当前行循环自动切换;该怎么解决?
问题:
1、怎么在打开窗口1加载数据后,单元格坐标就固定在第二列“部门”的第一行:tables("table1")(0,"部门");
2、代码控制当前行移动到下一行时,焦点单元格坐标也移动到下一行:tables("table1")(1,"部门");
3、移动到最后一行时回到第一行;依次类推......
4、窗口2的afterclose的变量“i”的值循环变化怎么解决;
5、窗口1的部门列的行是动态生成的;

这段table1的计时器代码怎么改?谢谢!

定义一个整数型全局变量 “i” 初始值为0:

Dim tbl As Table = Tables("窗口1_Table1")
Dim tb As String
tb = Tables(e.form.name & "_Table1").Value(0,"部门")
If Vars("i") = 0 Then
    tb = tbl.Value
    e.Cancel = True
    If tbl.Value IsNot Nothing Then
        Vars("gxmc")  = tbl.Current("部门")
        Forms("销售分析").Show    \'窗口关闭时 i 的值等于1代码写在窗口的afterclose下
        If tbl.Position < tbl.Rows.Count - 1
            tbl.Position = tbl.Position + 1
        Else
            tbl.Position = 0
        End If
    End If
ElseIf Vars("i") = 1 Then
    tb = tbl.Value
    e.Cancel = True
    If tbl.Value IsNot Nothing Then
        Vars("gxmc")  = tbl.Current("部门")
        Forms("销售分析").Show    \'窗口关闭时 i 的值等于2代码写在窗口的afterclose下
        If tbl.Position < tbl.Rows.Count - 1
            tbl.Position = tbl.Position + 1
        Else
            tbl.Position = 0
        End If
    End If
ElseIf   vars("i") = 2 Then
    代码3.....
ElseIf   vars("i") = 3 Then
    代码4.....
    .....
End If
[此贴子已经被作者于2019/11/27 14:19:04编辑过]

--  作者:有点蓝
--  发布时间:2019/11/27 14:28:00
--  
窗口1afterload
\'其它加载数据代码
 Tables("窗口1_Table1").select(0, Tables("窗口1_Table1").cols("部门").index)

移动行的用法
if Tables("窗口1_Table1").position = Tables("窗口1_Table1").rows.count - 1 then
Tables("窗口1_Table1").position = 0
else
Tables("窗口1_Table1").position = Tables("窗口1_Table1").position + 1
end if
 Tables("窗口1_Table1").select(Tables("窗口1_Table1").position, Tables("窗口1_Table1").cols("部门").index)

--  作者:狐表(小白)
--  发布时间:2019/11/27 14:53:00
--  
谢谢老师!