Foxtable(狐表)用户栏目专家坐堂 → 怎样获得datalist中已经build的列名称(不是列标题)。


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

主题:怎样获得datalist中已经build的列名称(不是列标题)。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
怎样获得datalist中已经build的列名称(不是列标题)。  发帖心情 Post By:2009/5/8 13:49:00 [只看该作者]

如题::


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/8 14:09:00 [只看该作者]

目前好像不能.

    尽管在窗口中显示表时,绝大多数情况下可以用Table代替DataList.但是,根据贺老师的说法,DataList和Table有着本质的不同.DataList是一个高级的数据列表框,而窗口中的Table是把表挪到了窗口中来显示.从程序设计的道理上来讲,在窗口中显示数据用DataList更符合惯例,在窗口中直接显示表编辑表(即Table)总感觉是一种电子表格的操作方式,不符合程序设计的惯例.
     所以,个人建议狐表作为一个开发工具不应倡导用户直接在窗口中修改表/显示表,而应尽量符合软件设计的惯例,培养大家好的习惯.所以,建议狐表要进一步增强DataList的功能:
例如楼主提到的获得DataList的显示列,
例如以前提到的DataList重新Build时速度太慢的问题.
另外,我再提一个小建议:希望DataList中应增加设置交替行背景色功能(这个在显示的时候很方便,用样式来实现这一功能速度又慢又不方便).

[此贴子已经被作者于2009-5-8 14:10:38编辑过]

 回到顶部
美女呀,离线,留言给我吧!
shxiaoya
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1442 威望:0 精华:2 注册:2008/9/7 21:30:00
  发帖心情 Post By:2009/5/8 14:16:00 [只看该作者]

试试从ColumnList取值

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 14:17:00 [只看该作者]

据贺老师说,Table也可以在窗口中动态增加和删除了,下次更新就可以用了,所以我想,还是多用Table,不是更方便?

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/8 14:24:00 [只看该作者]

以下是引用cpayinyuan在2009-5-8 14:09:00的发言:

目前好像不能.

应该可以的,试试:

Dim
dst As WinForm.DataList = e.Form.Controls("DataList1")

Dim Names As New List(Of String)

For Each dc As DataCol In dst.DataTable.DataCols
    Names.Add(d
c.Name)
Next


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/8 14:31:00 [只看该作者]

以下是引用yangming在2009-5-8 14:17:00的发言:
据贺老师说,Table也可以在窗口中动态增加和删除了,下次更新就可以用了,所以我想,还是多用Table,不是更方便?

     狐表本身应该算作数据库软件,不是电子表格,在表上进行汇总统计本来就感觉怪怪的!根据数据库软件的惯例,数据库中的表是储存数据的地方,不是进行汇总统计/显示数据的地方,所以数据的汇总统计及显示,还是与数据的储存分开更好一点,这样更符合数据库系统的惯例,也更有利于数据的安全完整.所以,在狐表中在Table中进行显示,包括进行汇总统计,功能上完全可以实现,但我始终认为还是应该把两者分开更好一些.即使为了照顾大部分人的意见允许用Table作为汇总统计和显示,也不应因此而忽视增强数据列表的功能.
    我的观点不一定对,仅供贺老师和大家参考.


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 14:41:00 [只看该作者]

这又回到前二天大家讨论的问题了,呵呵
Table和DataTables的区别了

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


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

一般来说,统计是统计,数据是数据。
虽然foxtable提供了汇总模式,让数据和统计结果可以混合在一起,但是也提供了分组统统计和交叉统计,得到纯粹的统计结果,大家愿意分开也行,不愿意分开也行,各取所需啊。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/8 15:26:00 [只看该作者]

以下是引用don在2009-5-8 14:24:00的发言:

应该可以的,试试:

Dim
dst As WinForm.DataList = e.Form.Controls("DataList1")

Dim Names As New List(Of String)

For Each dc As DataCol In dst.DataTable.DataCols
    Names.Add(d
c.Name)
Next

Dim dst As WinForm.DataList = Forms("窗口名称").Controls("DataList1")
Dim Names As New List(Of String)  '在此这行不需要

For Each dc As DataCol In dst.DataTable.DataCols
    output.show(d
c.Name)  '这样可以显示datalist里的列名了。谢谢don
Next

交叉统计的显示结果:
....
...
crsz1
crsz2
crsz3
crsz4
crsz5
...
...

[此贴子已经被作者于2009-5-8 15:48:27编辑过]

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


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

交叉统计生成的列名,就是:

crsz1
crsz2
crsz3
crsz4
crsz5

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