  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 1 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 12:43 pm    文章主題: GRID 自訂函數,指幾筆 就判斷否要跳頁 | 
				     | 
			 
			
				
  | 
			 
			
				gotocell( yrow, xcol, 51)      GRID 自訂函數
 
 
下頁 = 固定每51筆
 
 
  1 ~  51 筆
 
 52 ~ 102 筆
 
103 ~ 153 筆
 
154 ~ 204 筆
 
205 ~ 255 筆
 
256 ~ 306 筆
 
 
一開始在 1筆...我找 40筆...   在 1~ 51筆內...找到 40筆
 
 
目前在 40筆...再找 55筆...自動下頁在 52~102筆內...找到 55筆
 
 
目前在 55筆...再找 204筆...自動下頁在 154~204筆內...找到204筆
 
 
目前在 204筆...再找 50筆...自動上頁在 1~ 51筆內...找到 50筆
 
 
目前在 50筆...再找 同樣的50筆...不改變...
 
==============================================================================
 
LPARAMETERS yrow,xcol,saverelativerow
 
Thisform.Lockscreen=.T.
 
 
rr = yrow
 
cc = xcol
 
ss = saverelativerow
 
 
This.SetFocus()
 
numbercolumns = This.ColumnCount
 
IF cc > numbercolumns THEN
 
  cc = numbercolumns
 
ENDIF
 
cc1 = cc
 
 
currentcol = This.ActiveColumn
 
currentrow = This.ActiveRow
 
 
dnrow      = yrow - currentrow
 
uprow      = currentrow - yrow
 
dnisint    = int( yrow / ss )
 
upisint    = int( currentrow / ss )
 
dnismod    = mod( yrow , ss )
 
upismod    = mod( currentrow , ss )
 
 
This.Columns(cc).SetFocus
 
 
DO CASE
 
  CASE yrow = currentrow
 
     rr   = This.RelativeRow
 
  CASE yrow > currentrow
 
    DO CASE
 
      CASE                   <<<<< 不用下頁
 
         rr = iif( dnismod = 0 , ss , dnismod )
 
      CASE                   <<<<< 要跳下頁
 
         FOR i = 1 to ( dnisint + iif( dnismod = 0 , 0 , 1 ) )
 
           this.doscroll(3)
 
         ENDFOR
 
         rr = iif( dnismod = 0 , ss , dnismod )
 
    ENDCASE
 
 
 CASE yrow < currentrow 
 
    DO CASE
 
      CASE                   <<<<< 不用上頁 
 
         rr = iif( upismod = 0 , ss , upismod )
 
 
      CASE                   <<<<< 要跳上頁
 
         FOR i = 1 TO  ( upisint + iif( upismod = 0 , 0 , 1 ) )
 
           this.DoScroll(2)  
 
         ENDFOR
 
         rr = iif( upismod = 0 , ss , upismod )
 
      ENDCASE
 
 
      cc1=This.RelativeColumn
 
ENDCASE
 
 
movcol = ABS(currentcol - cc) 
 
IF currentcol > cc 
 
        left = .T.
 
        right= .F.
 
ELSE currentcol <= cc
 
        right= .T.
 
        left = .F.
 
ENDIF
 
 
 
DO CASE 
 
        CASE left
 
        FOR i = 1 TO movcol
 
                   This.DoScroll(4)
 
           ENDFOR
 
        CASE right 
 
        FOR i = 1 TO movcol
 
                   This.DoScroll(5)
 
           ENDFOR
 
ENDCASE
 
 
This.ActivateCell(rr,cc1)
 
This.Columns(cc).SetFocus
 
Thisform.Lockscreen=.F.
 
This.Refresh()
 
==============================================================================
 
程式內的一部份...case 後面..不管我測試很多方法..行不通...請大家能糾正麼..謝謝 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		DennisTsai
 
 
  註冊時間: 2005-07-26 文章: 178
 
  第 2 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 1:38 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 我已很努力看,實在是看不懂你要做什麼 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 3 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 4:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我會偷偷塞一個假欄位,
 
例如 1~51 是0, 52~102 是 1,
 
然後用這個欄位看你想做什麼. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 5 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 5:23 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| To Mr. syntech: 哈 好個旁門左道的一招 我試試看 謝謝 Mr. syntech | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 6 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 7:50 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 下面我知道如何判斷要不要跳頁, 問題的是 一開頭不知怎寫,能示範一下麼?謝謝 (我有加 假欄位) | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 7 樓
  | 
		
			
				 發表於: 星期二 一月 20, 2009 11:38 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 應該是解決問題...謝謝大家... | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		區榮熾
 
 
  註冊時間: 2005-11-14 文章: 191
 
  第 8 樓
  | 
		
			
				 發表於: 星期三 一月 28, 2009 10:31 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | moon64 寫到: | 	 		  | To Mr. syntech: 哈 好個旁門左道的一招 我試試看 謝謝 Mr. syntech | 	  
 
你有些忽略了加上一個欄位的意義......
 
看了你秀的圖,真的不知用途..............
 
      ? 1. 要移位滑鼠就好
 
        ? 2. 要找資料 seek, indexseek, 都很順手
 
所以 Mr.systech才說偷塞一欄位,意謂應該有一索引欄位,你程式才能有所管控...
 
 ?  >  ? OR ?  <  ?  ,(加上索引是王道)
 
那索引欄位可以是 Recno(), 編號, 日期,......
 
新春快樂 !!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期四 一月 29, 2009 3:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果條件出現固定多少筆,例如51
 
我的直覺會跳出來 " 要不就是除以51的商,要不就是除以51的餘數 ".
 
所以"1~51 是0, 52~102 是 1" 
 
(沒有完全準,因為我亂寫的,應該要除以 52 吧!  XD)
 
哈哈~~ 
 
 
懂不懂別人的提示,基本上還是要看個人的修為,
 
修為到了,一點就通,
 
就像張無忌看張三豐演繹太極拳劍一樣,
 
觀其型,會其意,
 
而不記其招.
 
 
看了別人的提示,有人可以演繹成A,有人可以演繹成B,
 
那也是正常的,
 
我的原始想法與 區兄 一樣,
 
這樣說來,這方面的修為應該差不多.  XD
 
 
其實看多版上兄弟的POST,
 
也可以發現有人偏好A,有人偏好B,
 
偏好大多無高低優劣之分,只有適用於何種環境之分,
 
當然,不一定需要弄成真正的欄位,
 
計算出的結果當成FILTER或是WHERE條件式一樣有效果.
 
 
我也是看多版上兄弟的POST,
 
遇到問題自然就會出現應對的方法,
 
只是很多人習慣先問再查再想. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		moon64
 
 
  註冊時間: 2008-12-16 文章: 45
 
  第 10 樓
  | 
		
			
				 發表於: 星期五 二月 06, 2009 4:15 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 嗯嗯...我新手...妳們說得沒錯...我忽略那個方法...很多程式來學習...謝謝大家指導... | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |