以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于填入数字自动筛选数值对应的合计值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50131)

--  作者:wealthwind
--  发布时间:2014/4/29 21:55:00
--  关于填入数字自动筛选数值对应的合计值

比如下图,我想达到的效果就是,我通过计算按钮,计算出按产品合计,然后我在右侧的NumericComboBox1控件中输入一个数值比如30,那么临时表就会筛选出排名前30的产品明细出来,这样的代码如何写。。。请老师给予帮助

 

计算代码是:

Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("产品编码")
g.Groups.AddDef("产品型态")
g.Groups.AddDef("产品")
g.Totals.AddDef("数量")
g.Totals.AddDef("金额")
g.VerticalTotal = True
e.Form.controls("Table1").Table.Datasource = g.BuildDataSource


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140429215029187.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/4/29 22:04:00
--  

Dim fdr As Datarow = e.Form.controls("Table1").Table.Datatable.Find("", "金额 Desc", 30)

If fdr IsNot Nothing Then

    e.Form.controls("Table1").Table.Filter = "金额 >= " & fdr("金额")

Else

    e.Form.controls("Table1").Table.Filter = ""

End If


--  作者:wealthwind
--  发布时间:2014/4/29 22:07:00
--  

老师,我不是需要固定的,值,我是需用,填入任何值,他就会筛选出来~~

 


--  作者:wealthwind
--  发布时间:2014/4/29 22:08:00
--  

有可能是30,也可以是15,也有可能是20


--  作者:wealthwind
--  发布时间:2014/4/29 22:09:00
--  

在比如,如果产品合计列只有15行,我输入的是20,他就只显示15行,且是从最大到最小排序

在比如,如果产品合计列有200行,我输入的是30,他就显示30行,且是从最大到最小排序


--  作者:有点甜
--  发布时间:2014/4/29 22:09:00
--  
 你不要没有一点进步好不好?自己改一下。
--  作者:有点甜
--  发布时间:2014/4/29 22:11:00
--  
以下是引用wealthwind在2014-4-29 22:09:00的发言:

在比如,如果产品合计列只有15行,我输入的是20,他就只显示15行,且是从最大到最小排序

在比如,如果产品合计列有200行,我输入的是30,他就显示30行,且是从最大到最小排序

 

排序这样写  e.Form.controls("Table1").Table.Sort = "金额 desc"

 

再看6楼


--  作者:wealthwind
--  发布时间:2014/4/29 22:14:00
--  
老师你这样一说,我不敢在追问你了~~
--  作者:wealthwind
--  发布时间:2014/4/29 22:18:00
--  
老师,好像这个有点难额~~
--  作者:有点甜
--  发布时间:2014/4/29 22:19:00
--  

 我彻底被你征服了

 

Dim fdr As Datarow = e.Form.controls("Table1").Table.Datatable.Find("", "金额 Desc", e.Form.Controls("xxx").Text)

If fdr IsNot Nothing Then

    e.Form.controls("Table1").Table.Filter = "金额 >= " & fdr("金额")

Else

    e.Form.controls("Table1").Table.Filter = ""

End If

 

e.Form.controls("Table1").Table.Sort = "金额 desc"

[此贴子已经被作者于2014-4-29 22:19:16编辑过]