VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

Grid 比對資料...改顏色

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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 . 大家 鞠躬
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作