Foxtable(狐表)用户栏目专家坐堂 → [求助]增加非临时列


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

主题:[求助]增加非临时列

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


加好友 发短信
等级:婴狐 帖子:22 积分:234 威望:0 精华:0 注册:2018/12/5 22:42:00
[求助]增加非临时列  发帖心情 Post By:2019/4/17 11:40:00 [只看该作者]

学习狐表几个月,写程序也是断断续续的,现在基本完成了一个小项目,就是最后碰了一个问题:我在窗口中的table1 绑定"物流统计表",并设计了一个按钮,希望可以在表的最后一列之后后自动增加当天的统计列
写的增加列的代码:

DataTables("物流统计表").datacols.Add(lmg,Gettype(Integer))  
Tables("物流统计表").Cols(lmg).Width = 40 '列宽
Tables("物流统计表").Cols(lmg).TextAlign = TextAlignEnum.Center '居中

其中lmg是字符串变量,在增加列之前已经从当天日期提取数据并生成列名

然后通过find在其它表中查找数据进行统计,用AddNew自动增加行进而输入数据
其它都可以了,就是增加的列在使用中,发现每次进入项目,之前增加的列不见了,后来查资料才知道,Add增加的是临时列.
什么函数增加的列不是临时列? 我找了有几天,没找出代码是怎么写的.
请老师指教


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2019/4/17 11:52:00 [只看该作者]

1、内部数据源、access数据源,最大列数是252列,你这种思路是错误的。

 

如果是sqlserver,没有列数的限制。

 

2、如果要添加列,参考 http://www.foxtable.com/webhelp/scr/2122.htm

 

 


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


加好友 发短信
等级:婴狐 帖子:22 积分:234 威望:0 精华:0 注册:2018/12/5 22:42:00
  发帖心情 Post By:2019/4/17 13:34:00 [只看该作者]

我之前也学过:动态修改表结构
但就算我直接把代码
Dim Builder As New ADOXBuilder
Builder.Open() 
'打开ADOXBuilder
With 
Builder.Tables("物流统计表")
    .AddColumn(
"日期" ,ADOXType.DateTime) '增加日期型列
    .AddColumn(
"产品" ,ADOXType.String12'增加字符型列,长度指定为12
    .AddColumn(
"客户" ,ADOXType.String20'增加字符列,长度为20
    .AddColumn(
"数量" ,ADOXType.Integer'增加整数型列
    .AddColumn(
"备注" ,ADOXType.Text) '增加备注列
End
 With
Builder.Close() 
'关闭ADOXBuilder
单纯的复制到控件试运行
会出现错误: 
异常来自 HRESULT:0x80040E3E
.NET Framework 版本:2.0.50727.8800
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,物流统计表,Button3,Click
详细错误信息:
异常来自 HRESULT:0x80040E3E
而且要关闭项目后再打开,这个增加的列才出现,我想的是只要点击控件,增加的列就马上出现.并能看到要统计的数据呢



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/17 14:35:00 [只看该作者]

卸载表,重新加载表即可刷新,如

 

Dim Builder As New ADOXBuilder
Builder.Open() '打开ADOXBuilder
With Builder.Tables("表a")
    .AddColumn("测试" ,ADOXType.DateTime) '增加日期型列
End With
Builder.Close() '关闭ADOXBuilder
DataTables.unload("表A")
DataTables.load("表A")

 

 

 


 回到顶部