以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  按钮命令如何写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1300)

--  作者:yl
--  发布时间:2008/12/2 16:19:00
--  按钮命令如何写?
假如有一表“A”,设计了两个表视图,分别叫“视图1”和“视图2”,再建一个主窗口,窗口名为“A”,添加一个button,名为“视图切换”,
问题:我想实现单击该按钮后进行“视图1”和“视图2”的相互切换,同时提示当前的视图名称。
如何实现?
谢谢!
--  作者:smileboy
--  发布时间:2008/12/2 16:22:00
--  
领导,你们还需要再研究一下图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2008/12/2 16:33:00
--  

按钮代码:

Static Name As string
If Name  = "视图1"
    Name = "视图2"
Else
    Name = "视图1"
End if
Tables("表名").OpenView(Name)
e.Sender.Text = Name

[此贴子已经被作者于2008-12-2 16:34:42编辑过]

--  作者:ybil
--  发布时间:2008/12/2 16:43:00
--  
也可通过判断某列如A是否可见来切换.

with CurrentTable
      if .Cols("A").Visible  Then
           .OpenView("视图2")
       Else       
           .OpenView("视图1")
       End If
 End with
[此贴子已经被作者于2008-12-2 16:52:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2008/12/2 16:52:00
--  
以下是引用ybil在2008-12-2 16:43:00的发言:
也可通过判断某列如A是否可见来切换.

with CurrentTable
      if .Cols("A").Visible = True  Then
           .OpenView("视图2")
       Else       
           .OpenView("视图1")
       End If
 End with


NND,还是这个代码厉害一些。
图片点击可在新窗口打开查看


--  作者:yl
--  发布时间:2008/12/2 17:01:00
--  
先谢谢各位老师,我先研究下!
--  作者:blackzhu
--  发布时间:2008/12/2 17:12:00
--  
以下是引用狐狸爸爸在2008-12-2 16:52:00的发言:


NND,还是这个代码厉害一些。
图片点击可在新窗口打开查看

  狐爸!看来你要把ybil版主招入你的团队了,绝对是高手嘛,我是越来越佩服了。


--  作者:yl
--  发布时间:2008/12/3 11:53:00
--  
1、狐狸爸爸的代码能实现button标题的显示切换,但不能切换表视图;
2、ybil版主的代码能实现表视图的切换,但不能实现button标题的显示切换;
3、请两位能否在修正一下,谢谢!

以下是我硬套两位的代码,可是不能实现切换表视图(button标题能切换):
with CurrentTable
      if .Cols("A").Visible  Then
           .OpenView("视图1")
            e.Sender.Text = "视图1"
       Else       
           .OpenView("视图2")
           e.Sender.Text = "视图2"            
       End If
 End with

--  作者:ybil
--  发布时间:2008/12/3 12:34:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


窗口AfterLoad事件改为:
Tables("表A") .OpenView("视图1")
Forms("窗口1").Controls("Button1").Text = "视图1"
[此贴子已经被作者于2008-12-3 12:45:06编辑过]

--  作者:czy
--  发布时间:2008/12/3 12:37:00
--  
你组合套用的代码没有看出有任何问题。

我大胆做个推断,你的视图1已经包含了A列,所以当代码检测到A列为可见时,执行了打开视图1的命令,而实际上A列就在视图1中,自然就不能切换了。

最简单的方法是更改列视图名称,或将代码改成:

with CurrentTable
      if .Cols("A").Visible = True  Then
           .OpenView("视图2")
           e.Sender.Text = "视图2"
       Else       
           .OpenView("视图1")
           e.Sender.Text = "视图1"
       End If
End with