怎么样实现数据窗口指定例和行的颜色改变?

wjmsino 2006-05-15 05:53:21
我在插入数据窗口数据要改变某例的颜色,但我插入行根据不同条件改变颜色不一样,这样我可以根据颜色区分那些记录是一类的.
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruky9988 2006-05-15
  • 打赏
  • 举报
回复
要分的类少的话还是在该列字段的 expression 里的background.color写上

IF(条件1, rgb(208,227,255),IF(条件2, rgb(255,227,155),RGB(227,227, 227)))
lmby 2006-05-15
  • 打赏
  • 举报
回复
在DW的ITEMFOCUSCHANGED事件,注意是ITEMFOCUSCHANGED事件:

//此处声明所用到的相关变量;
long ll_col,ll_pos,ll_cols
string modstring,ls_colnam,ls_color_1,ls_color_2
//此处给两个颜色变量赋值;
ls_color_1=string(RGB(0, 255, 0))
ls_color_2=string(rgb(255,0,0))
//此处获取当前列号和总列数;
ll_col=dw_1.getcolumn()
ll_cols=long(dw_1.Object.DataWindow.Column.Count)
//此处将所有列的BACKGROUND的MODE属性设为不透明;(注:下面两句其实可以放到FORM的OPEN事件或DW的CONSTRUCTOR里面执行,可以提高效率;)
for ll_pos=1 to ll_cols
ls_colnam=dw_1.Describe("#"+string(ll_pos)+".Name")
dw_1.Modify(ls_colnam+".Background.Mode='0'")
next
//此处将所操作列的Background.Color属性设为带IF判断的表达式,而除此之外的各列的背景表达式均设为恒值;
for ll_pos=1 to ll_cols
ls_colnam=dw_1.Describe("#"+string(ll_pos)+".Name")
if ll_pos<> ll_col then
modstring=ls_colnam+".Background.Color='"+ls_color_1+"'"
else
modstring=ls_colnam+".Background.Color='"+ls_color_1+" ~t if (getrow()=currentrow(),"+ls_color_2+","+ls_color_1+")'"
end if
//此处执行背景颜色修改;
dw_1.Modify(modstring)
//刷新显示新的背景颜色;
dw_1.setredraw(true)
next

最后的运行效果是当前ITEM为红色,其他均为绿色。
wjmsino 2006-05-15
  • 打赏
  • 举报
回复
怎么样改变某个字段某行的颜色,有没有具体代码?
hygougou 2006-05-15
  • 打赏
  • 举报
回复
加个字段保存颜色值,

然后根据不同条件设置不同行颜色值即可

可在数据窗口写表达式

或者在powerscript写modify语句

圣殿骑士18 2006-05-15
  • 打赏
  • 举报
回复
语句都不通顺,不懂

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧