 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
chinsavi
註冊時間: 2004-05-03 文章: 9
第 1 樓
|
發表於: 星期一 六月 14, 2004 12:26 pm 文章主題: 有無方法取得grid當時螢幕上第一筆的筆數或是指標所在grid螢幕 |
|
|
或許是我講得不清楚
引起"先進"誤會我問的不必要
我主要的問題是...
原先指標是放於GRID顯示的最上筆
但隨著翻頁及上下移動指標動作後,指標不一定在當時GRID顯示的最上筆
但是經過一些本人程序處理後,GRID又自動把指標是放於顯示的最上筆...雖然所在的筆數沒改變
我是希望指標回到原來的位置,
所以才希望得知有無方法取得grid當時螢幕上第一筆的筆數,或是指標所在grid螢幕上的筆數,以便使指標回到螢幕原來的位置 ,以合乎一般人的操作習慣 |
|
回頂端 |
|
 |
elleryq

註冊時間: 2007-06-21 文章: 768
第 2 樓
|
發表於: 星期一 六月 14, 2004 8:36 pm 文章主題: |
|
|
local ln_oldrecno
ln_oldrecno=recno() && save the position
*
* do something what you want.....
*
go ln_oldrecno && restore the position
收工 --> 這裡不用照抄... |
|
回頂端 |
|
 |
chinsavi
註冊時間: 2004-05-03 文章: 9
第 3 樓
|
發表於: 星期二 六月 15, 2004 10:18 am 文章主題: 很遺憾,沒有人看得懂我想要做什麼 |
|
|
ellerq對不起,你還是不瞭解我的意思
recno()我當然知道是何用途
我要的不是在資料表格的筆數,
而是 grid顯示時從當時頁面從最上筆,數下來到指標所在的筆數
或許我表達能力太差ㄋ
希望有其他人看的懂的人可以幫忙 |
|
回頂端 |
|
 |
chengsioieng
註冊時間: 2004-05-31 文章: 35 來自: 澳門
第 4 樓
|
發表於: 星期二 六月 15, 2004 10:53 am 文章主題: |
|
|
你嘗試不要把grid refresh |
|
回頂端 |
|
 |
an1060
註冊時間: 2004-02-29 文章: 48 來自: 高雄
第 5 樓
|
發表於: 星期二 六月 15, 2004 10:56 am 文章主題: |
|
|
步驟如下: (自己寫程式碼)
1.取得目錄記錄指標 x_rec = RECNO(table名稱)
2.skip -(ThisForm.gird名稱.ActiveRow - 1) IN table名稱 &&就是目標ROW位置往上移回去至第一列
3.再用RECNO()取得第一列之record number
4.還原回第一步驟之記錄指標 GO x_rec IN table名稱 |
|
回頂端 |
|
 |
chinsavi
註冊時間: 2004-05-03 文章: 9
第 6 樓
|
發表於: 星期二 六月 15, 2004 12:46 pm 文章主題: |
|
|
TO:AN1060
你文中:
2.skip -(ThisForm.gird名稱.ActiveRow - 1) IN table名稱 &&就是目標ROW位置往上移回去至第一列
"第一列"是指整個TABLE的第一列
而我需要的是"grid顯示時從當時頁面的最上筆"
是有不同的
TO:CHENSIOEIENG
對不起,我一定要REFRESH
因我GRID中的欄位CONTROLSOURCE都已更改ㄋ |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 7 樓
|
發表於: 星期三 六月 16, 2004 9:38 am 文章主題: |
|
|
VFP 的grid 是純種的data grid,
可以由recordsourcetype得知,
基本上都是由table 去決定 row,column.
因此, grid 的scope 是個private 屬性,
想由外部去控制似乎很困難.
實際上使用者是不會在乎畫面上的第一筆或是哪一筆等一下會有focus,
他們還是會自己找到要編輯的記錄,
很多時候都是程式設計人員自己想歪了. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
an1060
註冊時間: 2004-02-29 文章: 48 來自: 高雄
第 8 樓
|
發表於: 星期三 六月 16, 2004 2:04 pm 文章主題: |
|
|
你先去查一下gird.ActiveRow屬性的用途
我給你的第一列是Grid目前畫面中的第一列
TABLE的第一列是GO TOP
------------
我忘了補充一點
如果,目前記錄指標所指之RECNO不在目前所見之GRID內,亦即已超出目前
GRID可視範圍外,那對不起,我以上的方法無法使用.
其實你可以好好思考一下syntech在另一篇對你所回應的內容. |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 9 樓
|
發表於: 星期三 六月 16, 2004 3:48 pm 文章主題: |
|
|
我也發現了 chinsavi 似乎搞錯了 activerow和activecolumn 的作用及作用範圍,
實際上它只能標示作用 cell 的 row 和 column 值,
若要存取記錄,也是利用 recno() (因為 record mark 會自動移動到 作用record 上,也就是作用 row 的那筆記錄)
但是畫面上 grid 的 srope 卻與 作用 cell 不見得有關係,
這點自行點選scroll bar 就會發現了,
實際上應該也已經發現了,
所以才會這樣問.
database 操作與陣列操作不太一樣,
之前公司的工程師作過一件無聊的事,
依index 順序把全table 的record number 存入 一個陣列中(因為不多),
這樣只要 activerow 能 mapping 到 array index ,
就能利用陣列值找出 record number,
然後 go rec_no[grid.activerow + x ],
移動到該筆記錄上
這種方式真的不好,
請注意. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|