Foxtable(狐表)用户栏目专家坐堂 → 不知能否实现日期的这种下拉显示


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

主题:不知能否实现日期的这种下拉显示

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


加好友 发短信
等级:幼狐 帖子:66 积分:606 威望:0 精华:0 注册:2014/3/4 13:09:00
不知能否实现日期的这种下拉显示  发帖心情 Post By:2017/12/22 11:02:00 [只看该作者]

想对日期字段做查询,不想用起止日期的方式
想要的效果是:根据日期字段的值,比如2017-01-01,2071-07-08,在查询的下拉控件里显示 2017-01|2017-08
即:根据日期字段的值,动态生成 年-月 的值供选择,查询时,根据所选年月来查当月的记录
折腾了很久,没做出来,望老师点拨一下
主要是不知怎么生成2017-01这种年-月的格式。

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


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

如果是access、内部数据源,这样写

 

控件.ComboList = DataTables("订单").SQLGetComboListString("format(日期列, 'yyyy-MM')")

 

查询的时候,截取年、月,然后合成条件,如

 

Dim ary() as string = 值.split("-")

Dim d  As Date = New Date(ary(0), ary(1), 1)

Tables("表A").Filter = "日期列 >= #" & d & "# and 日期列 < #" & d.AddMonths(1) & "#"

 

 


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


加好友 发短信
等级:幼狐 帖子:66 积分:606 威望:0 精华:0 注册:2014/3/4 13:09:00
  发帖心情 Post By:2017/12/22 13:09:00 [只看该作者]

老师代码是不是有问题?

我照着抄,下拉不出值,把SQLGetComboListString改为 GetComboListString,提示 无法找到列 format(出库日期。


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


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

以下是引用有点辣在2017/12/22 13:09:00的发言:

老师代码是不是有问题?

我照着抄,下拉不出值,把SQLGetComboListString改为 GetComboListString,提示 无法找到列 format(出库日期。

 

必须要用 SQLGetComboListString,不能用 GetComboListString。

 

否则,你就必须循环每一行,转换成年月的形式,再赋值给下拉。


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


加好友 发短信
等级:幼狐 帖子:66 积分:606 威望:0 精华:0 注册:2014/3/4 13:09:00
  发帖心情 Post By:2017/12/22 14:33:00 [只看该作者]

用SQLGetComboListString不出结果,是sql数据源

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


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

以下是引用有点辣在2017/12/22 14:33:00的发言:
用SQLGetComboListString不出结果,是sql数据源

 

sqlserver数据源这样写

 

控件.ComboList = DataTables("订单").SQLGetComboListString("CONVERT(VARCHAR(7),日期列,120)")

 


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


加好友 发短信
等级:幼狐 帖子:66 积分:606 威望:0 精华:0 注册:2014/3/4 13:09:00
  发帖心情 Post By:2017/12/22 14:57:00 [只看该作者]

可以下拉了

但下拉的年月没有排序,想按日期排序

我写成  DataTables("订单").SQLGetComboListString("CONVERT(VARCHAR(7),出库日期,120)",,"出库日期")

又不出值了。


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


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

还是写代码吧

 

Dim ls As new List(Of String)
For Each dr As DataRow In DataTables("订单").Select("", "出库日期")
    Dim str As String = format(dr("出库日期"), "yyyy-MM")
    If ls.Contains(str) = False Then
        ls.add(str)
    End If
Next
msgbox(String.Join("|", ls.ToArray))

[此贴子已经被作者于2017/12/22 15:44:50编辑过]

 回到顶部