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

GRID 自訂函數,指幾筆 就判斷否要跳頁

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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 樓

發表發表於: 星期二 一月 20, 2009 2:47 pm    文章主題: 引言回覆

嗯嗯..我拿圖給妳看~~~

http://i721.photobucket.com/albums/ww211/moonriver64/Snap7.jpg
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期二 一月 20, 2009 4:49 pm    文章主題: 引言回覆

我會偷偷塞一個假欄位,
例如 1~51 是0, 52~102 是 1,
然後用這個欄位看你想做什麼.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
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
文章: 4249
來自: 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. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
moon64



註冊時間: 2008-12-16
文章: 45


第 10 樓

發表發表於: 星期五 二月 06, 2009 4:15 pm    文章主題: 引言回覆

嗯嗯...我新手...妳們說得沒錯...我忽略那個方法...很多程式來學習...謝謝大家指導...
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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