Foxtable(狐表)用户栏目专家坐堂 → 不同类型的Table公用一个录入窗口


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

主题:不同类型的Table公用一个录入窗口

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
不同类型的Table公用一个录入窗口  发帖心情 Post By:2012/9/4 16:29:00 [只看该作者]

不同类型的Table共用一个录入窗口

 

假定表A和表B建立了关联,另外窗口1中插入了一个Table控件,此Table控件绑定到表B,“作为副本”属性设置为True。

这样系统中将存在三个表B:

主表:   Tables("表B")
关联表: Tables("表A.表B")
窗口中: Tables("窗口1_Table1")

 

假定我们为表B设计了一个录入窗口,希望在上述三个Table中双击任何一行,即可打开这个录入窗口来编辑修改此行的数据。

 

设计步骤:

1、在全局代码中加上以下代码:

Public btName As String

 

2、将表B的PrepareEdit事件代码设置为:

e.Cancel = True

 

3、将表B的DoubleClick事件代码设置为:

btName = e.Table.Name '将Table名称保存在全局标量btName中
Forms(
"录入窗口名").Open()

 

4、按常规设计好这个录入窗口,各个字段如常绑定到表B的各列。

 

5、将窗口的AfterLoad事件代码设置为:

If btName  > "" AndAlso btName <> "表B" Then
    For Each c As Winform.Control In e.Form.Controls
        If c.Bindingfield > "" AndAlso c.Bindingfield.StartsWith("表B.")  Then
            c.BindingField= c.BindingField.Replace("表B.", btName & ".")
        End If
    Next
End If

 

设计思路很简单,双击基于表B的某个Table时,将此Table的名称保存在全局变量btName中,然后在窗口的Afteload事件中修改各控件的BindingField属性,绑定到这个Table。


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


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

这样好的精髓之帖,居然无人顶,晕,我来抢个沙发!

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/9/4 20:16:00 [只看该作者]

大佬:写这么多不如发一个实例上来过瘾图片点击可在新窗口打开查看,谢谢,试过先!

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2012/9/4 21:00:00 [只看该作者]

我好像写过这个的!

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/9/5 15:56:00 [只看该作者]

老大 这个副本表要不要加上同步的代码的,不加上好像不行哦.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/5 15:58:00 [只看该作者]

不用加,双击副本表,窗口的AfterLoad事件会自动将所有控件绑定到副本表中的列。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/9/5 16:04:00 [只看该作者]

       好像不太好,我今日的东西和你做的例子一摸一样   但是录入窗口有两个  现在的情况一个录入窗口在关联里面输入,绑定的是关联列. 一个是在副本表里面打开,正常绑定.但是这个 不能新增,也不能输入数据.后来将副本表换成主表就可以了.奇怪,是不是冲突造成的?
[此贴子已经被作者于2012-9-5 16:05:50编辑过]

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


加好友 发短信
等级:幼狐 帖子:139 积分:1021 威望:0 精华:0 注册:2012/1/18 14:40:00
  发帖心情 Post By:2012/9/5 16:05:00 [只看该作者]

好东西,好思路!

 

我想问另外一个问题:

 

不同控件的事件代码,能否共用一个?

不是用内部函数或全局代码,我是指,直接引用其他控件的事件代码?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/5 16:11:00 [只看该作者]

以下是引用blackzhu在2012-9-5 16:04:00的发言:
       好像不太好,我今日的东西和你做的例子一摸一样   但是录入窗口有两个  现在的情况一个录入窗口在关联里面输入,绑定的是关联列. 一个是在副本表里面打开,但是这个 不能新增,也不能输入数据.现在副本表换成主表就可以了.奇怪,是不是冲突造成的.

 

可以,你看看: 

 

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/5 16:12:00 [只看该作者]

以下是引用woiz在2012-9-5 16:05:00的发言:

好东西,好思路!

 

我想问另外一个问题:

 

不同控件的事件代码,能否共用一个?

不是用内部函数或全局代码,我是指,直接引用其他控件的事件代码?

 

 

不行,只有:

http://www.foxtable.com/help/topics/2309.htm

 


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