Foxtable(狐表)用户栏目专家坐堂 → 筛选后的数据显示


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

主题:筛选后的数据显示

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
筛选后的数据显示  发帖心情 Post By:2009/6/10 12:57:00 [只看该作者]

  我们筛选后,我想用颜色将所筛选的数据标出.比如我筛选一个订单为"W5",我想用黄色将"W5"标出,背景或者字体均可.代码怎么写?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/10 12:57:00 [只看该作者]

看drawcell事件

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/6/10 14:41:00 [只看该作者]

2、问题是怎么标记我筛选的值?
6、是的,不需要,直接读取输入的筛选值就行啊

我就这两个值不知道怎么写?还有你的代码我测试没有用.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/6/10 14:42:00 [只看该作者]

按理有用啊,你的代码我也看得懂,但不起作用,奇怪.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/10 14:45:00 [只看该作者]

一定有用的,除非你搞错了列名和样式名。
搞不定的话,就做个例子传上来看看。
[此贴子已经被作者于2009-6-10 14:47:27编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/6/10 15:11:00 [只看该作者]

以下是引用狐狸爸爸在2009-6-10 14:45:00的发言:
一定有用的,除非你搞错了列名和样式名。
搞不定的话,就做个例子传上来看看。
[此贴子已经被作者于2009-6-10 14:47:27编辑过]

搞定,要回车才行.


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/10 15:15:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
总数 13 1 2 下一页