Foxtable(狐表)用户栏目专家坐堂 → 动态增加表,能不能增加表达式啊?


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

主题:动态增加表,能不能增加表达式啊?

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


加好友 发短信
等级:八尾狐 帖子:1816 积分:19334 威望:0 精华:0 注册:2013/4/10 14:38:00
  发帖心情 Post By:2020/5/23 13:53:00 [显示全部帖子]

以下是引用狐狸爸爸在2013/2/17 17:32:00的发言:

可以增加表达式列,首先你增加的表名,最好用约定的字符开头或结尾:然后在AfterOpenProject事件中加上代码

 

For Eah dt As DataTable in DataTables

   if dt.Name.StartsWith(“约定的表名开头字符") Then

       dt.DataCols.Add(....)

   End if

Next

 

更好的办法是,另外建立一个表,四列: 表名、列名、数据类型,表达式,将用户新增的表达式列信息保存在这个表中,然后在AfterOpenProject事件中加上代码:

 

For each dr As Datarow in DataTables("表名").Datarows

    Select Case dr("类型")

          Case "整数"

                  DaaTables(dr("表名")).Add(dr("列名"),GetType(Integer),dr("表达式"))

          Case "小数"

                  DaaTables(dr("表名")).Add(dr("列名"),GetType(Double),dr("表达式"))

    End Select

Next

 

其实Foxtable自己的表达式列,就是这样处理的。

 

[此贴子已经被作者于2013-2-17 17:31:55编辑过]

怎样判断一个列是表达式列,如果可以判断,可以在加载数据前,把所有 表达式列保存起来 再 设置为空,加载完成后再设置成原来的表达式,是否会加快加载速度,可以做一个通用的程序。

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


加好友 发短信
等级:八尾狐 帖子:1816 积分:19334 威望:0 精华:0 注册:2013/4/10 14:38:00
  发帖心情 Post By:2020/5/23 14:23:00 [显示全部帖子]

收到,

狐表在设计表的时候是不是把表达式放在表中了?如果是,可否作一个通用函数取得指定表的表达式列。


 回到顶部