Foxtable(狐表)用户栏目专家坐堂 → [原创]请帮我看一下这个表tabcontrol上的问题


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

主题:[原创]请帮我看一下这个表tabcontrol上的问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 16:52:00 [显示全部帖子]

1、设计窗口的时候,设置个Table控件的“允许编辑”属性。

2、在窗口AfterLoad事件:

 

Tables("会计科目_Table2").Filter = "某列  = 1"

 

3、参考这个,增加或编辑行后,单击取消按钮可以取消:

http://help.foxtable.com/topics/2263.htm

 

4、参考:

http://help.foxtable.com/topics/0656.htm

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 20:31:00 [显示全部帖子]

我说的是直接设置:

 


图片点击可在新窗口打开查看此主题相关图片如下:900.gif
图片点击可在新窗口打开查看

 

如果要用代码,应该是这样:

 

Tables("会计科目_Table2").AllowEdit = False

 

设置在窗口的AfterLoad事件。

建议你先系统看看帮助,写出"table1.允许编辑=true"这样的代码,你会耽误更多的时间。

 

 

 

 


 

[此贴子已经被作者于2011-5-28 20:33:06编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 20:53:00 [显示全部帖子]

呵呵,你在帮助搜索一下“allowedit”看看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 21:18:00 [显示全部帖子]

table也是Table:
http://help.foxtable.com/topics/1788.htm


Table的属性很多,分成好几节讲:
http://help.foxtable.com/topics/1431.htm


你在会计科目的PrepareEdit事件设置了代码:

 

e.Cancel = True

 

当然任何情况下都是不能编辑的。


 
 
 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 21:33:00 [显示全部帖子]

1、你编辑窗口的各个字段,绑定的是会计科目这个主表Table,不是副本Table,主Table和副本Table是各自独立的,在副本Table移动到某行,主Table并不会也移到此行,所以你的编辑窗口显示的始终是同一行的数据。

你如下DoubleClick事件,即可解决问题

 

With Tables("会计科目")
    .Position = .FindRow(e.Row.DataRow)
End With
Forms("科目编辑").Open()

 

使得打开编辑窗口前,主Table定位到副本Table的同一行。

 

2、至于排序,同样你设置的是主Table的sort属性,又不是副本Table的sort属性,副本Table为什么要排序?

 

你要分清楚主Table和副本Table,是两个不同的Table,各自独立的,否则要副本和用?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/28 21:38:00 [显示全部帖子]

以下是引用aloby在2011-5-28 21:32:00的发言:

 

我把下面这句加到按钮最前面,还是不行。

Tables("会计科目").Position = Tables("会计科目_Table1").Position

 

副本和非副本,可能有不同的排序和筛选,两个Table相同位置的行,并非就是同一行。

解决方法看12楼。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/29 15:22:00 [显示全部帖子]


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/29 16:55:00 [显示全部帖子]

我都插入了啊:

 


图片点击可在新窗口打开查看此主题相关图片如下:010.gif
图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/29 22:29:00 [显示全部帖子]

你说的表插入和窗体插入是是什么意思? 不明白。

任何插入都是在表插入,我就是在窗体中的Table控件插入一行的。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/29 23:39:00 [显示全部帖子]

AddNew是增加行,增加的当然在后面,要插入行,得用InserNew:

http://help.foxtable.com/topics/1981.htm

 

还得注意Table的名称,所以新增(或许名称改为插入更合适)按钮的代码应该是:

 

With Tables("会计科目")
    If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
        Tables("会计科目_Table1").InsertNew()
    End If
End With
Forms("科目编辑").Open()

 

Foxtable内置了插入行的功能,不需要根据科目名称排序,也不需要任何设置,直接InsertNew即可。

 

帮助提供了大量的示例,可以说处处是宝,你错过了很可惜,也让自己走了更多的弯路。

你一句“从头到尾看帮助不现实”让我对你印象深刻,其实学编程要系统地学,东一锄头,西一榔头,是学不好的,花费的时间会更多,所谓磨刀不误砍柴工,就是这个道理。

学习编程的应该是这样: 至少先啃两遍帮助  然后边练边学一段时间  最后回炉一两遍帮助,以后的话遇到不明白的地方查帮助即可。

学习并非一定要记住什么,只是需要对方法和概念有个了解,遇到问题知道需要去哪里查帮助,假如你系统看了帮助,就知道Table除了用于增加行的AddNew外,还有用于插入行的InserNew,即使不记得有这个方法,也可以去帮助查查Table有没有用于插入行的方法。
一个5分钟的问题,结果花了两天时间才搞定,“欲速则不达”在这里得到了充分的体现。

 

帮助近期也会提供一个综合性的例子,但是基本概念不掌握,也不见得会有多大的帮助。

[此贴子已经被作者于2011-5-30 9:26:59编辑过]

 回到顶部
总数 11 1 2 下一页