Foxtable(狐表)用户栏目专家坐堂 → 能否在beforeLoadOutertable中加载表结构?


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

主题:能否在beforeLoadOutertable中加载表结构?

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17403 威望:0 精华:0 注册:2014/7/29 19:09:00
能否在beforeLoadOutertable中加载表结构?  发帖心情 Post By:2016/11/19 20:52:00 [只看该作者]

打开项目时要先加载几张基础表,现在是先在外部数据表管理中先添加这几张表

如果在外部数据表中不添加任何一张表,能否直接在下面的事件中加载表结构及数据。
S elect Case e.DataTableName
    Case "系统表","dtbSet","QtbSet","单据流程","SetQuerytb","授权表","授权表2"
        e.S electString = "S elect * From {" & e.datatablename & "}"
    Case Else
        e.Cancel = True
End S elect

上面的代码只能加载数据,打开系统时会提示找不到表,要如何同时加载表结构及数据呢?

谢谢!

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 9:54:00 [只看该作者]

 不添加外部表,你在foxtable里面,是不能直接用上那些表的。

 

 你只能通过加载外部表的方式引入 http://www.foxtable.com/webhelp/scr/1279.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17403 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/11/20 10:53:00 [只看该作者]

不添加外部表时,直接在beforeloadoutertable事件加入下面代码也不行,但在命令窗口中运行类似的代码又可以加载某个表

S elect Case e.DataTableName
    Case "系统表","dtbSet","QtbSet","单据流程","授权表","授权表2"
        Dim q As new OuterTableBuilder
        q.TableName = e.DataTableName
        q.C
        q.S electString = "S elect * From {" & e.DataTableName & "}"
        q.Build
    Case Else
        e.Cancel = True
End S elect

要实现这种功能应该在哪个事件写代码或者怎么写才能在打开项目时一次性加载这几个基础表的结构及数据?
谢谢

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 11:52:00 [只看该作者]

你不能在 beforeloadoutertable 写。你可以写到afterOpenProject事件。


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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17403 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/11/20 18:28:00 [只看该作者]


此主题相关图片如下:360截图20161120182237931.jpg
按此在新窗口浏览图片

'---加载几个初始基础表
Dim tbs() As String = {"系统表","dtbSet","QtbSet","单据流程","SetQuerytb","授权表","授权表2"}
For i As Integer = 0 To tbs.length - 1
    If DataTables.Contains(tbs(i)) = False Then
        msgbox(tbs(i))
        Dim q As new OuterTableBuilder
        q.TableName = tbs(i)
        q.ConnectionName = Mydata
        q.S electString = "S elect * From {" & tbs(i) & "}"
        q.Build
    End If
Next

 

 

将代码写在afteropenproject中加载第二个表时出现上面的错误,再将这几个表重新按旧方式添加到外部表中运行也会出现相同的错误,sql数据库中的dtbSet也确实

设置了主键,不知为何出现这个错误?

 



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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 19:07:00 [只看该作者]

 你肯定没有设置主键吧?你用旧方式添加,肯定会提示你没有主键。


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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17403 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/11/20 23:05:00 [只看该作者]

谢谢!原来是切换到另外一个数据源上了。按老帅的方式可以直接在打开项目时再添加表结构及数据了,但有个问题就是这样添加的表无法打开表属性设置来设置一些表事件及属性什么的,看来还是只能用旧的方式在外部数据表中添加了。

 回到顶部