 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
moon64
註冊時間: 2008-12-16 文章: 45
第 1 樓
|
發表於: 星期三 三月 04, 2009 2:36 pm 文章主題: Grid 比對資料...改顏色 |
|
|
grid 有 Column1 ~ Column4
如1.游標在 Record2 時, 比對 record1 內 Column1 ~ Column4, 若比對成立, 改變顏色
如2.游標在 Record5 時, 比對 record1~ record4 內 Column1 ~ Column4, 若比對成立, 改變顏色
beforerowcolchange : oldrow = this.activerow
afterrowcolchange :
newrow = this.ActiveRow
DO CASE
CASE oldrow < newrow && 往下一格
sfood1 = food1
sfood2 = food2
sfood3 = food3
sfood4 = food4
Bcolor1 = "(115,255,115)"
Bcolor2 = "( 58,226,206)"
Bcolor3 = "(255,221, 0)"
Bcolor4 = "(255,188, 0)"
Bcolorno= "(228,228,255)"
FOR i = 1 TO 4 && food1~food4 欄位 是 數字型態
str_i = STR( i, 1, 0 )
BackColor1 = "IIF( food&str_i = sfood1, RGB&bBcolor1, IIF( food&str_i = sfood2, RGB&bBcolor2, IIF( food&str_i = sfood3, RGB&bBcolor3, IIF( food&str_i = sfood4, RGB&bBcolor4, RGB&bBcolorno )"
ENDFOR
thisform.grid.column1.DynamicBackColor = BackColor1
thisform.grid.column2.DynamicBackColor = BackColor1
thisform.grid.column3.DynamicBackColor = BackColor1
thisform.grid.column4.DynamicBackColor = BackColor1
* CASE oldrow > newrow && 往上一格
ENDCASE
以上 我不知出在哪問題,請大家指點 ><!! |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 2 樓
|
發表於: 星期三 三月 04, 2009 11:08 pm 文章主題: |
|
|
一般而言,DynamicBackColor 應設定在 grid 的 init 中 , 您把它設定在 afterrowcolchange ,
看起來怪怪地 |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 3 樓
|
發表於: 星期三 三月 04, 2009 11:37 pm 文章主題: |
|
|
Mr. ckp6250...你說的沒錯, init 表示一次改變所有,我有想過了,但是,每recno 要比對上期的需求...... |
|
回頂端 |
|
 |
DennisTsai
註冊時間: 2005-07-26 文章: 178
第 4 樓
|
發表於: 星期四 三月 05, 2009 9:22 am 文章主題: |
|
|
加欄位,對應運算結果填入rgb值,如此用DynamicBackColor來作就千變萬化了 |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 5 樓
|
發表於: 星期四 三月 05, 2009 12:17 pm 文章主題: |
|
|
MR.DennisTsai...謝謝你的提示,我正在思考中....... 怎拼程式^^! |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 6 樓
|
發表於: 星期五 三月 06, 2009 9:47 am 文章主題: |
|
|
糾正:
isverify 欄位 = .F.
beforerowcolchange :
oldrow = this.ActiveRow
n = LASTKEY()
DO CASE
CASE n = 24 && 往下一格
REPLACE isverify WITH .T.
CASE n = 5 && 往上一格
REPLACE isverify WITH .F.
ENDCASE
afterrowcolchange :
newrow = this.ActiveRow
Bcolor1 = "(115,255,115)"
Bcolor2 = "( 58,226,206)"
Bcolor3 = "(255,221, 0)"
Bcolor4 = "(255,188, 0)"
Bcolorno= "(228,228,255)"
DO CASE
CASE oldrow < newrow && 往下一格
sfood1 = food1
sfood2 = food2
sfood3 = food3
sfood4 = food4
BackColor1 = "IIF( (food1 = sfood1 AND isverify = .T.), RGB&Bcolor1, IIF( (food1 = sfood2 AND isverify = .T.), RGB&Bcolor2, IIF( (food1 = sfood3 AND isverify = .T.), RGB&Bcolor3, IIF( (food1 = sfood4 AND isverify = .T.), RGB&Bcolor4, RGB&Bcolorno ))))"
BackColor2 = "IIF( (food2 = sfood1 AND isverify = .T.), RGB&Bcolor1, IIF( (food2 = sfood2 AND isverify = .T.), RGB&Bcolor2, IIF( (food2 = sfood3 AND isverify = .T.), RGB&Bcolor3, IIF( (food2 = sfood4 AND isverify = .T.), RGB&Bcolor4, RGB&Bcolorno ))))"
BackColor3 = "IIF( (food3 = sfood1 AND isverify = .T.), RGB&Bcolor1, IIF( (food3 = sfood2 AND isverify = .T.), RGB&Bcolor2, IIF( (food3 = sfood3 AND isverify = .T.), RGB&Bcolor3, IIF( (food3 = sfood4 AND isverify = .T.), RGB&Bcolor4, RGB&Bcolorno ))))"
BackColor4 = "IIF( (food4 = sfood1 AND isverify = .T.), RGB&Bcolor1, IIF( (food4 = sfood2 AND isverify = .T.), RGB&Bcolor2, IIF( (food4 = sfood3 AND isverify = .T.), RGB&Bcolor3, IIF( (food4 = sfood4 AND isverify = .T.), RGB&Bcolor4, RGB&Bcolorno ))))"
thisform.grid.column1.DynamicBackColor = BackColor1
thisform.grid.column2.DynamicBackColor = BackColor2
thisform.grid.column3.DynamicBackColor = BackColor3
thisform.grid.column4.DynamicBackColor = BackColor4
* CASE oldrow > newrow && 往上一格
ENDCASE
訊息結果: expression is invalid. use a valid expression for DynamicBackcolor property
請問 哪不對!!!
moon64 在 星期五 三月 06, 2009 2:31 pm 作了第 4 次修改 |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 7 樓
|
發表於: 星期五 三月 06, 2009 9:49 am 文章主題: |
|
|
Recno 食物1 食物2 食物3 食物4
--- --- --- --- ---
1 2 3 〔4〕 5
2 〔4〕 5 〔9〕 10
3 1 3 8 11
4 1 3 5 〔7〕
5 4 6 7 9 <∼游標比對上期,〔〕為變顏色
6 1 5 7 8 <∼不能比對
以上我想要的結果..謝謝 |
|
回頂端 |
|
 |
moon64
註冊時間: 2008-12-16 文章: 45
第 8 樓
|
發表於: 星期五 三月 06, 2009 7:02 pm 文章主題: |
|
|
問題已解決.....
INIT: 加入 PUBLIC sfood1,sfood2,sfood3,sfood4 < 重點
AFTERROWCOLCHANGE:
最後加入 this.refresh()
其他慢慢調整就可^^ 最後 謝謝 MR.ckp6250 . MR.DennisTsai . 大家 鞠躬 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|