Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:筛选后的数据显示

1楼
blackzhu 发表于:2009/6/10 12:57:00
  我们筛选后,我想用颜色将所筛选的数据标出.比如我筛选一个订单为"W5",我想用黄色将"W5"标出,背景或者字体均可.代码怎么写?
2楼
狐狸爸爸 发表于:2009/6/10 12:57:00
看drawcell事件
3楼
yangming 发表于:2009/6/10 13:00:00

DrawCell

在绘制单元格的时候执行。

e参数属性有:

Form:     触发事件的窗口
Sender:   触发事件的控件
DataRow:  正在绘制的数据行
ColName: 正在绘制的列的名称
Style:   用于绘制单元格的样式名称

示例

假定DataList用于显示订单数据,我们希望对于大于5000的金额,用红底蓝字标出,对于大于4000的金额,用蓝底白字标出。

首先在窗口的AfterLoad事件中设置代码,增加两个样式:

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.AddUserStyle(
"a",Color.Red,Color.Blue)
dst.AddUserStyle(
"b",Color.Blue,Color.White)

然后将DataList的DrawCell事件设为:

If e.ColName = "金额" Then
    Dim Val As Double = e.DataRow("金额")
    if
Val > 5000
Then
        e.Style =
"a"
   
ElseIf Val > 4000 Then
        e.Style=
"b"
   
End If
End
If

如是DataList,也可以看帮助中的"DataList的颜色标记功能"

[此贴子已经被作者于2009-6-10 13:01:00编辑过]
4楼
blackzhu 发表于:2009/6/10 14:12:00
以下是引用yangming在2009-6-10 13:00:00的发言:

DrawCell

在绘制单元格的时候执行。

e参数属性有:

Form:     触发事件的窗口
Sender:   触发事件的控件
DataRow:  正在绘制的数据行
ColName: 正在绘制的列的名称
Style:   用于绘制单元格的样式名称

示例

假定DataList用于显示订单数据,我们希望对于大于5000的金额,用红底蓝字标出,对于大于4000的金额,用蓝底白字标出。

首先在窗口的AfterLoad事件中设置代码,增加两个样式:

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.AddUserStyle(
"a",Color.Red,Color.Blue)
dst.AddUserStyle(
"b",Color.Blue,Color.White)

然后将DataList的DrawCell事件设为:

If e.ColName = "金额" Then
    Dim Val As Double = e.DataRow("金额")
    if
Val > 5000
Then
        e.Style =
"a"
   
ElseIf Val > 4000 Then
        e.Style=
"b"
   
End If
End
If

如是DataList,也可以看帮助中的"DataList的颜色标记功能"

[此贴子已经被作者于2009-6-10 13:01:00编辑过]

  我在datalist试出来了,但是试了以后我只能做到整张表的所要的数据用颜色显示,我想要效果是在筛选后标出.不是整个表都显示.我做不出来.比如我用这个代码筛选数据:

with e.Form
    if e.sender.text <> "请输入关键字" then
        Dim dst As WinForm.DataList = .Controls("DataList1")
        Dim txb1 As WinForm.TextBox = .Controls("TextBox1")
        dst.RowFilter = "[联系人] Like '*" & txb1.text & "*' or [客户编号] Like '*" & txb1.text & "*'or [客户名称] Like '*" & txb1.text & "*'or [地址] Like '*" & txb1.text & "*'"
       

end with


  举了例子,我筛选客户编号为"52033",筛选后"52033"用颜色表示出来.这个代码怎么写?
5楼
狐狸爸爸 发表于:2009/6/10 14:22:00
其实编程是很简单的,关键是怎么思考问题。

例如你这个问题,应该这么思考:

1、现在可以标记颜色了
2、问题是怎么标记我筛选的值?
3、换个说法,怎么让Drawcell事件知道我筛选的是那个值?
4、哦,这个简单,将筛选的值保存在全局变量中,这样任何事件都可以掉用,包括DrawCell事件。
5、还是不好,都是同一个窗口,也需要用全局变量吗?
6、是的,不需要,直接读取输入的筛选值就行啊,例如DataList的DrawCell事件设为:

Dim Val As String  = e.Form.Controls("输入筛选内容的文本框的名称").Value
If e.ColName = "筛选列" Then
   If e.DataRow("筛选列") =Val
        e.Style = "a"
    End If
End If
6楼
blackzhu 发表于:2009/6/10 14:41:00
2、问题是怎么标记我筛选的值?
6、是的,不需要,直接读取输入的筛选值就行啊

我就这两个值不知道怎么写?还有你的代码我测试没有用.
7楼
blackzhu 发表于:2009/6/10 14:42:00
按理有用啊,你的代码我也看得懂,但不起作用,奇怪.
8楼
狐狸爸爸 发表于:2009/6/10 14:45:00
一定有用的,除非你搞错了列名和样式名。
搞不定的话,就做个例子传上来看看。
[此贴子已经被作者于2009-6-10 14:47:27编辑过]
9楼
blackzhu 发表于:2009/6/10 15:11:00
以下是引用狐狸爸爸在2009-6-10 14:45:00的发言:
一定有用的,除非你搞错了列名和样式名。
搞不定的话,就做个例子传上来看看。
[此贴子已经被作者于2009-6-10 14:47:27编辑过]

搞定,要回车才行.

10楼
狐狸爸爸 发表于:2009/6/10 15:15:00
图片点击可在新窗口打开查看
共13 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.