以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]动态创建表结构后,能否设置列的扩展类型  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143991)

--  作者:天一生水
--  发布时间:2019/12/8 16:07:00
--  [求助]动态创建表结构后,能否设置列的扩展类型
老师好!
发布后的程序,可以创建表,设置列类型;但设置的列扩展类型(图片、文件、多值字段等),重启项目后就丢失了。
是不是这样的,不允许这样操作?
谢谢!


--  作者:有点蓝
--  发布时间:2019/12/8 21:44:00
--  
动态创建的表需要动态设置扩展列类型:http://www.foxtable.com/webhelp/topics/1656.htm
--  作者:天一生水
--  发布时间:2019/12/8 22:07:00
--  
我是按老师说的这样做的,代码如下,重启项目后,[备注]列单元格中的按钮就没有了。

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试动态扩展列.table



\'1、创建表
Dim Builder As New ADOXBuilder    
Dim tbl As ADOXTable
Builder.Open() 
tbl = Builder.NewTable("订单") \'创建表
With tbl
    .AddColumn("日期" ,ADOXType.DateTime)
    .AddColumn("产品" ,ADOXType.String, 12)
    .AddColumn("客户" ,ADOXType.String, 20)
    .AddColumn("数量" ,ADOXType.Integer)
    .AddColumn("备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl) \'增加表
Builder.Close()
DataTables.load("订单")
MainTable = Tables("订单")

\'2、设置扩展列为图片列
DataTables("订单").DataCols("备注").ExtendType = ExtendTypeEnum.Images 

\'3、添加一行数据
Syscmd.Row.AddNew

--  作者:有点蓝
--  发布时间:2019/12/8 23:07:00
--  
方法1、afteropenproject事件
If DataTables.Contains("订单") Then
    DataTables("订单").DataCols("备注").ExtendType = ExtendTypeEnum.Images
End If
2、重启后到列属性里重新设置

--  作者:天一生水
--  发布时间:2019/12/9 8:36:00
--  

老师好!

但是这两种方法都不能在发布好的客户端实现。

第二种方法中,重启后,鼠标右键点击表标题,弹出表标题菜单,除了“列属性”不能用以外,其他的均可使用。

不应该是限制了吧?客户录入数据的时候非常需要,但开发者开发时却不一定设置。

 


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

--  作者:有点蓝
--  发布时间:2019/12/9 9:20:00
--  
建表本来就应该是开发人员的工作。如果都留给用户自己建表肯定是有一些问题的。比如没有表事件,没有表属性、列属性可以设置。并且各种代码设置表属性后,重启项目后都必须重新使用代码设置才能使用的

这种动态创建的表建议都放到窗口表里使用,需要的使用调用一下类似4楼的代码给表设置各种属性。