Foxtable(狐表)用户栏目专家坐堂 → [求助] 动态加载数据


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

主题:[求助] 动态加载数据

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
[求助] 动态加载数据  发帖心情 Post By:2018/2/1 13:54:00 [只看该作者]

ComboBox 中输入了4个列表项目:  “显示全部”,“2016” “2017”  “2018”  想通过切除列表的不同年份来加载产品信息的数据内容
TextChanged 事件中写代码

Dim cz As WinForm.ComboBox = e.sender
Dim nr As String =cz.text
If nr <>"显示全部" Then
    DataTables("产品信息").LoadFilter = "年 ='" & nr & "' "
    DataTables("产品信息").Load
End If

提示错误信息
错误所在事件:加载[产品信息]失败!
详细错误信息:
至少一个参数没有被指定值。
不知道哪里错了,
图片附件上传了3个,一个都无法显示 

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/1 14:01:00 [只看该作者]

好像动态加载设定,其它的关联表无法正常显示了, 如果关联表很多如何操作,(帮助文件中只举例了单个关联表),还是以后表间不适合采用关联操作

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


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

列名写错了吧?你表格由【年】列吗?是表达式列吗?

 

Dim cz As WinForm.ComboBox = e.sender
Dim nr As String =cz.text
If nr > "" andalso nr <>"显示全部" Then
    Dim d As Date = new Date(nr, 1, 1)
    DataTables("产品信息").LoadFilter = "日期 >= #" & d & "# and 日期 < #" & d.addyears(1) & "#"
    DataTables("产品信息").Load
else
    DataTables("产品信息").LoadFilter = ""
    DataTables("产品信息").Load
End If

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/1 14:35:00 [只看该作者]

是的,这个年是由编号的前4位生成的

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/1 15:06:00 [只看该作者]

由于动态加载还不太熟悉,还是采用筛选功能,在筛选中如何使用 这个呢,我的列名没有 日期 列    如何才能实现呢   动态表达列就不能作为筛选内容
[此贴子已经被作者于2018/2/1 15:07:16编辑过]

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


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

Dim cz As WinForm.ComboBox = e.sender
Dim nr As String =cz.text
If nr > "" andalso nr <>"显示全部" Then
    DataTables("产品信息").LoadFilter = "mid(某列,1,4) = '" & nr & "'" '如果是sqlserver,就mid改成substring函数
    DataTables("产品信息").Load
else
    DataTables("产品信息").LoadFilter = ""
    DataTables("产品信息").Load
End If

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/1 15:26:00 [只看该作者]

Dim cz As WinForm.ComboBox = e.sender
Dim nr As String =cz.text
If nr > "" AndAlso nr <>"显示全部" Then
Dim Page As WinForm.TopicPage
Page = Forms("左侧导航栏").Controls("TopicBar1").Pages("组长")
For Each nm As String In DataTables("基本设定").GetValues("名称","类别='模具负责人' and 显隐=false and mid([产品编号],1,4) = '" & nr & "'")
    Dim link As WinForm.TopicLink = Page.Links.Add(nm,nm)
    Dim cnt As Integer = DataTables("产品信息").Compute("count([_Identify])","模具负责人= '" & nm & "'")
    '通过主健来统计数量
    link.text=link.text & "    " & "(" & cnt & ")" & "付"
Next
end if 

提示未定义MID 函数是什么情况
使用的是内部表
[此贴子已经被作者于2018/2/1 15:27:24编辑过]

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


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

For Each nm As String In DataTables("基本设定").GetValues("名称","类别='模具负责人' and 显隐=false and substring([产品编号],1,4) = '" & nr & "'")

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/2 15:25:00 [只看该作者]

代码已经调整并优化,可以正常使用了,想再请教下,我想提取编号的前4号数  作为combobox  的下拉列表内容  这个如何写  还有如何把日期列的(2017-10-10)提取年份作为年的combobox 下拉列表内容  及提取月份作为月的combobox 下拉列表内容

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


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

可以用 SQLGetComboListString 函数,比如

 

http://www.foxtable.com/webhelp/scr/2910.htm

 

SQLGetComboListString("substring([产品编号],1,4)")

 

SQLGetComboListString("year(日期)")

SQLGetComboListString("month(日期)")


 回到顶部