以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 动态加载数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114241) |
-- 作者:kinglw110 -- 发布时间: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 -- 发布时间:2018/2/1 14:01:00 -- 好像动态加载设定,其它的关联表无法正常显示了, 如果关联表很多如何操作,(帮助文件中只举例了单个关联表),还是以后表间不适合采用关联操作 |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2018/2/1 14:35:00 -- 是的,这个年是由编号的前4位生成的 |
-- 作者:kinglw110 -- 发布时间:2018/2/1 15:06:00 -- 由于动态加载还不太熟悉,还是采用筛选功能,在筛选中如何使用 这个呢,我的列名没有 日期 列 如何才能实现呢 动态表达列就不能作为筛选内容 [此贴子已经被作者于2018/2/1 15:07:16编辑过]
|
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/2/1 15:36:00 -- For Each nm As String In DataTables("基本设定").GetValues("名称","类别=\'模具负责人\' and 显隐=false and substring([产品编号],1,4) = \'" & nr & "\'") |
-- 作者:kinglw110 -- 发布时间:2018/2/2 15:25:00 -- 代码已经调整并优化,可以正常使用了,想再请教下,我想提取编号的前4号数 作为combobox 的下拉列表内容 这个如何写 还有如何把日期列的(2017-10-10)提取年份作为年的combobox 下拉列表内容 及提取月份作为月的combobox 下拉列表内容 |
-- 作者:有点甜 -- 发布时间:2018/2/2 15:52:00 -- 可以用 SQLGetComboListString 函数,比如
http://www.foxtable.com/webhelp/scr/2910.htm
SQLGetComboListString("substring([产品编号],1,4)")
SQLGetComboListString("year(日期)") SQLGetComboListString("month(日期)") |