看看这个问题,不好解决哦!

kind_li 2002-01-28 04:47:11
数据窗体问题,如何设置多行的背景颜色,用表达式:
dw_main.modify("DataWindow.Detail.Color='0 ~t if(getrow()=" + string(row) + ",rgb(255,0,0),rgb(0,255,255))'" )
只能设置单行,不能设置多行,并且会覆盖掉以前设置的行颜色。

怎么办?
...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jia12345678901 2002-01-29
  • 打赏
  • 举报
回复
哈哈,用 in
例子如下:
ls_modify=ls_object+".background.color='0~tif(getrow() in ("+string(il_findrow[1])+"),rgb(250,255,180),if(getrow()=currentrow(),rgb(198,211,222),rgb(255,255,255)))'"
il_findrow[1]是定义的需要显示特定颜色的数组列,上列只用了了一个,可追加动态调用. ~

Methodor 2002-01-28
  • 打赏
  • 举报
回复
error~~
仔细调试了~~
programbcb 2002-01-28
  • 打赏
  • 举报
回复
dw_main.modify("DataWindow.Detail.Color='0 ~t case(getrow() when 1 then rgb(255,0,0) when 2 then rgb(0,255,255) when ... else ...)'" )
「已注销」 2002-01-28
  • 打赏
  • 举报
回复
给你各解决思路:
以后在处理这种问题时,你要从数据窗口的参照列来考虑,如果你要改变某一个有唯一特性的对象的属性时,很显然,对对象的调用要准确无误。
dw_main.modify("DataWindow.Detail.Color='0 ~t if(getrow()=" + string(row) + ",rgb(255,0,0),rgb(0,255,255))'" )
它改变了明细区的背景,如果要改变多行的背景颜色,首先可以在每列的画笔中都定义它的背景色,即可,这是数据窗口的参照体是当前行d的属性.

其他的处理方法,改变列的背景参照体,好象在列的layer属性中,然后就可用你的语句了
ksmgbits 2002-01-28
  • 打赏
  • 举报
回复
在数据窗口的所有列的画笔中写if( isSelected(),"rgb(255,0,0)","rgb(0,255,255)")表达式即可
dingxiaojun 2002-01-28
  • 打赏
  • 举报
回复
把row改成currentrow试试,
例:
if ( currentRow() = getrow(),rgb(248,233,188),if(mod(getrow(),2) = 0,rgb(224,229,206),rgb(234,235,217)))
lesni 2002-01-28
  • 打赏
  • 举报
回复
直接在DataWindow的设计模式下的属性中写。

401

社区成员

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

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