Foxtable(狐表)用户栏目专家坐堂 → [求助]Comobox SelectedIndexChanged事件


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

主题:[求助]Comobox SelectedIndexChanged事件

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
[求助]Comobox SelectedIndexChanged事件  发帖心情 Post By:2013/7/2 15:52:00 [只看该作者]

现在有个界面,界面很简单,一个Combobox,一个Table。Table绑定了一张表,该表中有一列字段是统计年份,取值有2011,2012,2013。Combobox现在也能够自动列出该表统计年份的值。Table也能根据选择的年份显示当年的运行数据。

现在还有一个问题,我在那个窗口界面下放了几个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 Double = e.Form.Controls("TextBox2").Value
Dim txt3 As String = e.Form.Controls("TextBox3").Value
Dim txt4 As String = e.Form.Controls("TextBox4").Value
Dim txt5 As String = e.Form.Controls("TextBox5").Value
Dim txt6 As String = e.Form.Controls("TextBox6").Value
Dim txt7 As String = e.Form.Controls("TextBox7").Value
Dim txt8 As String = e.Form.Controls("TextBox8").Value
Dim txt9 As String = e.Form.Controls("TextBox9").Value
Dim txt10 As String = e.Form.Controls("TextBox10").Value
Dim str As String = cmb.Value
Dim tbl As Table = Tables("设备运行表")
Dim p As Integer = tbl.Cols("运行时间").Index
If str IsNot Nothing Then
    tbl.Filter = "统计年份 = " &  "'" & str & "'"
    txt2 = tbl.Aggregate(AggregateEnum.Sum,0,p,11,p)
Else
    tbl.Filter = ""
End If

执行后切换年份的选择TextBox没有丝毫变化,求指教!

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/2 16:01:00 [只看该作者]

1、你这些TextBox绑定到窗口中这个表的各列了吗?如果没有绑定,自然不会发生变化。

2、你下面这些代码,意义何在?

 

Dim txt1 As String = e.Form.Controls("TextBox1").Value
Dim txt2 As Double = e.Form.Controls("TextBox2").Value
Dim txt3 As String = e.Form.Controls("TextBox3").Value
Dim txt4 As String = e.Form.Controls("TextBox4").Value
Dim txt5 As String = e.Form.Controls("TextBox5").Value
Dim txt6 As String = e.Form.Controls("TextBox6").Value
Dim txt7 As String = e.Form.Controls("TextBox7").Value
Dim txt8 As String = e.Form.Controls("TextBox8").Value
Dim txt9 As String = e.Form.Controls("TextBox9").Value
Dim txt10 As String = e.Form.Controls("TextBox10").Value


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/2 16:03:00 [只看该作者]

你这位什么会有变化?你的TextBOx都绑定列了吗?  

如果没有,你也没为他们赋值,它当然不会变化啊.

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/7/2 16:05:00 [只看该作者]

不应该绑定啊,下面的这些textbox并不是简单的表中的列的值啊,比如计划运行时间就是一个固定值:24*365,实际运行时间是表中运行时间(H)这列的年度汇总值,怎么能够绑定呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/2 16:09:00 [只看该作者]

不是说要你绑定列,而是看不懂你要干嘛,既不绑定 也不赋值 那么值从何来?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/2 16:09:00 [只看该作者]

如果你在TextBox对筛选后的数据进行统计,可以:

 

'原来的筛选代码

e.Form.Controls("TextBox1").Value  = Tables("表名").Compute("Sum([某某列1])")

e.Form.Controls("TextBox2").Value  = Tables("表名").Compute("Sum([某某列2])")


 


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/7/2 16:09:00 [只看该作者]

我就是想通过在selectedindexchanged这个事件中通过选择不同的年份然后给这些textbox赋不同的值啊,我的代码中不是有赋值的语句吗?是不是语句不对呢?

给textbox1赋值难道下面的写法不对吗?

Dim txt1 As Double = e.Form.Controls("TextBox1").Value

txt = 24 * 365


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/2 16:11:00 [只看该作者]

你这是哪门子的赋值,什么跟什么呀.你需要先去看帮助.

e.Form.Controls("TextBox1").Value= 24*365
e.Form.Controls("TextBox2").Value= Tables("表名").Compute("Sum([某某列2])")

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/2 16:13:00 [只看该作者]

楼主你可能没搞清楚 变量的问题, 你这样并不是把TextBox当作变量来使用 而是把TextBox的值赋值到 一个String变量里面去.


而且就算你想把TextBox当作变量来使用,你也没有把变量赋值啊.

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/7/2 16:13:00 [只看该作者]

知道了,好吧 ,我犯糊涂了,我赋值的是中间变量,实在是不好意思啊!

 回到顶部