如何动态地改变DW某一行中某一列的背景色和是否只显示

dennistan 2001-07-18 10:03:46
大侠,请问如何动态地改变DW某一行中某一列的背景色和是否只显示不能输入,其中DW中此列是DDDW,而设置背景色和使用能后不需要重新RETRIEVE(),就可以生效。因为我在UPDATE()之后想把刚INSERT()的那些行的背景色和使用能改成灰底和只显示不能输入。
...全文
229 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nasy 2001-07-20
  • 打赏
  • 举报
回复
代码年上来,好好看吧。

ItemFocuschanged():
string li,ls
int i

IF is_prevcolumn<>'' THEN
li= Modify(is_prevcolumn+".background.Color='0~tIf(currentrow()=getrow(),rgb(55,244,202),rgb(255,255,255))'" )
END IF
ls=Modify ( string(dwo.name)+".background.Color='0~tIf(currentrow()=getrow(),rgb(255,255,166),rgb(255,255,255))'" )
is_prevcolumn=string(dwo.name)

clicked():
IF row=0 THEN RETURN
i=GetSelectedRow(0)
SelectRow(i,FALSE)
is_column=dwo.name

background.color 设置:
If(currentrow()=getrow(),rgb(55,244,202),rgb(255,255,255))


Ok?

dennistan 2001-07-20
  • 打赏
  • 举报
回复
但用Modify如何判断是不是新行才改变背景色和使用能
dotnba 2001-07-19
  • 打赏
  • 举报
回复
String ls_color
Integer i

ii_colcount = Integer(THIS.Object.DataWindow.Column.Count)
FOR i = 1 TO ii_colcount
is_colname[i] = THIS.DESCRIBE('#' + String(i) + '.NAME')
IF THIS.DESCRIBE(is_colname[i] + '.ColType') = 'datetime' THEN
THIS.Modify(is_colname[i] + '.Alignment="3"')
THIS.Modify(is_colname[i] + '.Format = "yyyy-mm-dd"')
END IF
ls_color = THIS.DESCRIBE(is_colname[i] + '.Background.Color')
if ib_rowmark THEN
THIS.Modify(is_colname[i] + '.Background.Mode = "0"')
if THIS.DESCRIBE(is_colname[i] + '.Background.Color') = ls_color THEN
THIS.Modify(is_colname[i] + '.Background.Color = "0~t If(CurrentRow() = GetRow(),RGB(150,210,255),RGB(255,255,255))"')
else
THIS.Modify(is_colname[i] + '.Background.Color = "0~t If(CurrentRow() = GetRow(),RGB(150,210,255),' + ls_color + ')"')
end if
END IF
NEXT
lzzyi 2001-07-19
  • 打赏
  • 举报
回复
在列的EXPRESSION里写,在background.color中写if(isrownew(),rgb(r,g,b),rgb(r,g,b)),在protect中写if(isrownew(),0,1)就行。
dennistan 2001-07-19
  • 打赏
  • 举报
回复
但用了MODIFY后要RETRIEVE,而我不再用RETRIEVE就要改变,在EXPRESSION里写恐怕也不行,因为刚INSERT的那些行就算把ITEMSTATUS改为NOTMODIFIED!也不能再激发EXPRESSION写的那些(ISROWNEW(),。。。),有办法实现吗?
hellon1 2001-07-18
  • 打赏
  • 举报
回复
在COLOR中加入属性的表达式很方便的
chuanshuo 2001-07-18
  • 打赏
  • 举报
回复
在数据窗中用表达式更方便
zhuzhichao 2001-07-18
  • 打赏
  • 举报
回复
if ( isRowNew(), 0, 1 )
caolei1974 2001-07-18
  • 打赏
  • 举报
回复
或者你在表里加一个字段,如果保存了就为"Y",然后再表达是里写就行了
caolei1974 2001-07-18
  • 打赏
  • 举报
回复
dw_1.列名.background.color可以改变颜色,然后设置tab order为0
wangsw 2001-07-18
  • 打赏
  • 举报
回复
设置被景色可用MODIFY,也可用EXPRESSION中的BACKGROUND。COLOR,具体应用视程序的方便性而定!!
不能修改可用SETTABORDER=0,也可设其PROTECT 属性为1
szjlq 2001-07-18
  • 打赏
  • 举报
回复
你用modify不就行啦,
或者在数据窗口中用表达式来做更好.
dian 2001-07-18
  • 打赏
  • 举报
回复
分别在数窗字段的groundcolor和protect属性中写表达式

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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