Foxtable(狐表)用户栏目专家坐堂 → [建议]SQLTable和SQLQuery可以选择显示列


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

主题:[建议]SQLTable和SQLQuery可以选择显示列

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/22 18:36:00 [显示全部帖子]

以下是引用kylin在2009-8-22 18:30:00的发言:
其实提供设置列视图是必要的
1、select是可以选择列,比如为了编程方便,姓名编号+姓名,但是我只要显示姓名编号供选择,选择编号后,我还要填写入姓名,这样就不可以只select一个姓名编号列
2、对于较多列不需要显示,那么设置col的visible属性为 False比较不直观
这个确实有点麻烦。当我碰到比较多的列、而只要显示其中的几个列时,就先用For Each把它们全部隐藏,然后再将部分列显示。
如能设置视图就好了!

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/22 19:32:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-8-22 18:55:00的发言:
No

呵呵,老六不支持,我们可以自己做。根据加载的表不同,把相关的值写入文本文件,下次打开时再读取就是了。或者用设置信息。


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 11:18:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-8-23 10:34:00的发言:


Dim Vals As List(Of String)
Vals.AddRange("a|b|c".Split("|"))
For Each c As Col In Tables("XX").Cols
     c.Visible = Vals.Contains(c.name)
Next


前面2行代码就出错了!

[此贴子已经被作者于2009-8-23 11:20:53编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 11:31:00 [显示全部帖子]

呵呵,一上午都被bug搞的头稀昏的,以为集合的方法不对呢(帮助上竟然没有)。。
受你的启发,以后可以读取文本文件中的指定行啦,这才是我最关心的。以后一个文本文件里可以保存多条配置信息啦,图片点击可在新窗口打开查看

Dim Vals As New List(Of String)
Dim txt as string = FileSys.ReadAllText("d:\1.txt")
Vals.AddRange(txt.Split(Chr(13)))
output.show(Vals(1))

[此贴子已经被作者于2009-8-23 11:37:57编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 11:50:00 [显示全部帖子]

晕,看来帮助已经更新了。我看的还是7月初打印的文本。

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 11:51:00 [显示全部帖子]

以下是引用yangming在2009-8-23 11:42:00的发言:

Dim Vals As New List(Of String)
Vals.AddRange("工号|身份证号|银行卡号".Split("|"))
For Each c As Col In Tables("窗口10_Table1").Cols
     c.Visible = Vals.Contains(c.name)
Next

 

这样窗口中一列都没有,呵呵

我试了,可以的。这个代码确实精简!


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
同一个文件,同时用商业版和试用版打开回不回有问题  发帖心情 Post By:2009/8/23 12:03:00 [显示全部帖子]

论坛有问题了,好几次发不出去贴,然后自动退出。只好重新登陆。
就这样设置啊:

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


另外,老六要对帮助改进一下。我刚才在帮助里搜索AddRange才找到相关内容,在目录里怎么找不到这个内容呢?
[此贴子已经被作者于2009-8-23 12:03:30编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 13:23:00 [显示全部帖子]

对老六代码的改进,可以同时设置显示的列名和宽度:

        Dim txt as String = "A,100|B,318|C,100"
        Dim i as Integer = 0
        For Each c As Col In .Cols
             Dim Vals() As String = txt.Split("|")
             c.Visible = txt.Contains(c.name & ",")      '加逗号可以保证列名完全匹配
             If c.Visible = True
                 c.Width = Vals(i).substring(Vals(i).indexof(",")+1)
                 i = i + 1
             End If
        Next

把以上代码做成函数,直接调用起来比datalist还方便!

 回到顶部