在历史纪录中加上颜色提示(在线等待!)
有free form 格式的dw数个,从历史表中提取被修改的列的id,根据id改变列中数据
的背景色,现在的问题是对于pb6.5中触发的事件上无法得到合适的结果,想请教各位大虾.
取得历史纪录的思路是判断modify status,从而得到列的id[只能取列id,不能去名字,因为原数据窗口中有子数据窗口,我不能调用setcolumn()所以也就不能用getcolumn()]
以下是改变颜色的代码(数据窗口不能被修改)
思路是每次先把颜色变回来,然后再由int_col(列的id)取道chr_zd列的名字,再改变颜色.
String chr_change,chr_zd
Long i,j,int_len,int_col
Modify("chr_sfzh.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_zzmm.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_xm.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_mz.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_dh.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_xb.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_dz.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("ins_nl.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_hk_dz.Background.Color='" + String(RGB(255,255,255)) + "'" )
Modify("chr_gzdw.Background.Color='" + String(RGB(255,255,255)) + "'" )
chr_change = GetItemString(GetRow(),"chr_xgzd")//被修改的字段
j = len(chr_change)
if not isnull(chr_change) then
for i = 1 to j
int_len = pos(chr_change,",")
int_col = Long(left(chr_change,int_len - 1))
if int_col <> 0 then
Modify("chr_sfzh.TabSequence = 10")
Modify("chr_zzmm.TabSequence = 20")
Modify("chr_xm.TabSequence = 30")
Modify("chr_mz.TabSequence = 40")
Modify("chr_dh.TabSequence = 50")
Modify("chr_xb.TabSequence = 60")
Modify("chr_dz.TabSequence = 70")
Modify("ins_nl.TabSequence = 80")
Modify("chr_hk_dz.TabSequence = 90")
dw_bjr.Modify("chr_gzdw.TabSequence = 100")
setcolumn(int_col)
chr_zd = getcolumnname()
Modify(chr_zd + ".Background.Color='" + String(RGB(200,220,255)) + "'" )
Modify("chr_sfzh.TabSequence = 0")
Modify("chr_zzmm.TabSequence = 0")
Modify("chr_xm.TabSequence = 0")
Modify("chr_mz.TabSequence = 0")
Modify("chr_dh.TabSequence = 0")
Modify("chr_xb.TabSequence = 0")
Modify("chr_dz.TabSequence = 0")
Modify("ins_nl.TabSequence = 0")
Modify("chr_hk_dz.TabSequence = 0")
Modify("chr_gzdw.TabSequence = 0")
end if
chr_change = right(chr_change,len(chr_change) - int_len)
int_col = 0
chr_zd = ""
next
end if
已经在rowfocuschanged;retrieveend,retrievestart,
'上一条','下一条'纪录按钮的clicked,从按钮post,trigger上述事件
尝试过,都失败了,变了颜色,不变数据;变了数据,不变颜色,
rowfocuschanged,对于scrollnextrow有反映,ScrollPriorRow没反映
请各位救我
问题点数:100、回复次数:5Top
1 楼lzp_lrp(lzp)回复于 2002-06-27 12:06:06 得分 60
不能用setcolumn()你可以这么写
for ll_col = 1 to ll_cnt
this.modify("#" + string(ll_col) + ".backcolor = 0~trgb(255, 255, 255)")
nextTop
2 楼ale(阿乐)回复于 2002-06-27 13:07:39 得分 0
lzp
我现在的主要问题是,不知道该用什么事件,现在的dw事件都没法完全实现
我索要的功能,或则有什么使我没注意到的???
Top
3 楼hui_hui_lin(慧慧)回复于 2002-06-27 14:58:15 得分 35
在rowfocuschanging事件中写Top
4 楼hui_hui_lin(慧慧)回复于 2002-06-27 15:00:30 得分 0
在rowfocuschanging事件中写Top
5 楼ale(阿乐)回复于 2002-06-27 17:26:55 得分 0
rowfocuschanging事件 会报错
我的数据还没出来,modify,setcolumn出错Top
6 楼lyj007(爱的回忆)回复于 2002-06-27 17:38:55 得分 5
我不明白的是,你为何需要一大堆脚本???你能否举个实例???Top




