Foxtable(狐表)用户栏目专家坐堂 → [求助]组合框初始值(已解决)


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

主题:[求助]组合框初始值(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]组合框初始值(已解决)  发帖心情 Post By:2011/7/1 9:24:00 [只看该作者]

一个案例,第一列为年月系列值,在窗口事件AfterLoad加入如下代码,要求打开项目后,在组合框内的初始值为年月系列值中最大值并取前四位,应该如何设置代码?请各位老师指教,谢谢!!

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT 第一列 From {表A}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列")

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目90.table

[此贴子已经被作者于2011-7-1 14:26:44编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/1 9:47:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT TOP 4 第一列 From {表A} Order by 第一列 DESC"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列")

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/7/1 9:57:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT TOP 4 * FROM (SELECT DISTINCT 第一列 From {表A} ORDER BY 第一列 DESC)"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列","","第一列 Desc")
cmb.Value = dt.DataRows(0)("第一列")

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/7/1 10:13:00 [只看该作者]

谢谢两位老师的热情帮助,可能是我没有表述清楚,要求是:打开项目,组合框内即显示年月系列值的最大值,并只显示最大值的前四位,本例为2011即可。如何实现?还请指教。

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


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2011/7/1 10:25:00 [只看该作者]

可以使用SubString方法获得从指定位置开始的、指定长度的字符串。
SubString第一个参数指定开始位置,第二个参数可选,用于指定长度,如果省略这个参数,则返回自指定位置开始的全部字符,例如:

Dim s As String = "I Like Foxtable"
Output.Show(s.SubString(
0,6)) '获得左边6个字符: I Like
Output.Show(s.SubString(s.Length -
8)) '获得右边8个字符:Foxtable
Output.Show(s.SubString(
2,4)) '获得从第3个字符开始的4个字符: Like


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/1 10:26:00 [只看该作者]

Dim cmd As New SQLCommand
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT Max(Left(第一列,4)) From {表A}"
cmb = e.Form.Controls("ComboBox1")
cmb.Value = cmd.ExecuteScalar


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/7/1 12:32:00 [只看该作者]

狐爸的代码还是有问题,应该还可以选择2010才对。请再想想办法。

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/7/1 13:20:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT Left(第一列,4) As 第一列 From {表A}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls("ComboBox1")
cmb.ComboList= dt.GetComboListString("第一列","","第一列 Desc")
cmb.Value = cmb.ComboList.split("|")(0)
[此贴子已经被作者于2011-7-1 13:52:04编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/7/1 14:26:00 [只看该作者]

谢谢ybil老师的指教,完全符合要求,又学了一招,万分感谢ybil老师的帮助,当然也要感谢狐爸的帮助。


 回到顶部