以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]Combobox动态筛选表格内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=37174)

--  作者:xu3180497
--  发布时间:2013/7/2 14:01:00
--  [求助]Combobox动态筛选表格内容

现在有个界面,界面跟简单,一个Combobox,一个Table。Table绑定了一张表,该表中有一列字段是统计年份,取值有2011,2012,2013。Combobox现在也能够自动列出该表统计年份的值。现在想通过Combobox的SelectedIndexChanged实现选择一个列表项目后下方的表就显示该年的数据信息。请问应该怎么实现?

界面如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130702140133.png
图片点击可在新窗口打开查看
求指教!
--  作者:Bin
--  发布时间:2013/7/2 14:05:00
--  
Combobox ENTER事件中. 把 ComboLIstString 设置为这个表的  统计年分裂即可   

如果希望不重复..可以使用 GetuniqueValues 来获得不重复值集合 再赋值添加到Combobox 即可

--  作者:xu3180497
--  发布时间:2013/7/2 14:11:00
--  
麻烦详细说明下,不是很懂!试了一下不行。
--  作者:Bin
--  发布时间:2013/7/2 14:13:00
--  
实在不会就上个例子吧.
--  作者:狐狸爸爸
--  发布时间:2013/7/2 14:20:00
--  

看看SelectedIndexChanged的代码这样设置行不行:

 

Dim y As integer = e.Sender.Text

Dim dt1 As New Date(y,1,1)

Dim dt2 As New Date(y,12,31)

Tables("xxx").filter =  “日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#" 


--  作者:Bin
--  发布时间:2013/7/2 14:22:00
--  
晕,刚才没看到你还有第二个需求.

那么在SelectedIndexChanged

Tables("xxx").filter="统计年份 = " & e.Sender.Text

如果是字符串列 

Tables("xxx").filter="统计年份 = \'" & e.Sender.Text & "\'"


--  作者:xu3180497
--  发布时间:2013/7/2 14:44:00
--  
谢谢,已经弄好了,怪不得我说我没看懂biN的第一个回答, 大家都很牛,赞一个!!!
--  作者:xu3180497
--  发布时间:2013/7/2 15:26:00
--  

现在还有一个问题,我在那个窗口界面下放了几个lable和textbox,用于显示表格的某些统计信息,希望在selectedindexchanged事件触发的时候,显示的表格的数据就会自动计算好然后填充到我的textbox中,但是不知道怎么弄呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130702152311.png
图片点击可在新窗口打开查看
表中计划运行时间是固定值:24*365,实际运行时间就是某年“运行时间(H)”列的sum汇总值,其他的反正可以算出来,就告诉我这两个怎么去实现就行了。

界面中的textbox我都设为只读了,另外修改了一下背景颜色,应该不会影响吧?

另外贴上我的selectedindexchanged的代码:

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim txt1 As String = e.Form.Controls("TextBox1").Value
Dim txt2 As String = e.Form.Controls("TextBox2").Text
Dim txt3 As String = e.Form.Controls("TextBox3").Text
Dim txt4 As String = e.Form.Controls("TextBox4").Text
Dim txt5 As String = e.Form.Controls("TextBox5").Text
Dim txt6 As String = e.Form.Controls("TextBox6").Text
Dim txt7 As String = e.Form.Controls("TextBox7").Text
Dim txt8 As String = e.Form.Controls("TextBox8").Text
Dim txt9 As String = e.Form.Controls("TextBox9").Text
Dim txt10 As String = e.Form.Controls("TextBox10").Text
Dim str As String = cmb.Value
Dim tbl As Table = Tables("设备运行表")
If str IsNot Nothing Then
    tbl.Filter = "统计年份 = " &  "\'" & str & "\'"
    txt1 = 1
    \'txt2 = tbl.
Else
    tbl.Filter = ""
End If