上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 1 樓
|
發表於: 星期日 九月 15, 2013 10:23 am 文章主題: 幫 Grid 加上列號及多選框 |
|
|
因為樓下這一篇『幫 Grid 加上列號』http://vfp.sunyear.com.tw/viewtopic.php?t=6171
原作者寫得太爛了,效率不彰,缺點又多,實在讓人看不下去,應予揚棄才是正理。
經 DennisTsai 大師開示後,本篇另起爐灶,重新改寫,不但效率高,而且又增功能
除了自動增加列號外,另能自動增加多選框(如附圖),
當游標移到這二項之標題(Header)時,還有立即跳至某列或立即篩選過濾
使用方式很簡單,只有二個動作
procedure grid.init
.......
您自己的程式碼
......
AddRowNo4Grid(this,1,.T.) &&加上這一行
endproc
另外
procedure grid.refresh
.......
您自己的程式碼
......
ReBuildRowNo(this) &&加上這一行
endproc
ckp6250 在 星期三 九月 18, 2013 5:13 pm 作了第 6 次修改 |
|
回頂端 |
|
|
arthur
註冊時間: 2003-11-05 文章: 18
第 2 樓
|
發表於: 星期日 九月 15, 2013 11:35 am 文章主題: |
|
|
收下了
謝謝 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 3 樓
|
發表於: 星期一 九月 16, 2013 7:02 am 文章主題: |
|
|
不得不問一下,
如果瀏覽的當時,
其他使用者新增或刪除記錄,
這個 列次 會怎麼表現? |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 4 樓
|
發表於: 星期一 九月 16, 2013 9:02 am 文章主題: |
|
|
跟著變動,永遠保持正確順序 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 5 樓
|
發表於: 星期一 九月 16, 2013 9:42 am 文章主題: |
|
|
grid.refresh 嗎? |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 6 樓
|
發表於: 星期一 九月 16, 2013 10:19 am 文章主題: |
|
|
Yes |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 7 樓
|
發表於: 星期一 九月 16, 2013 11:55 am 文章主題: |
|
|
不是小弟找麻煩,
只是有遇到這樣的情形...
如果改變排序的方式 asce -> desc
我的列次變成 999 to 1 顯示. |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 8 樓
|
發表於: 星期一 九月 16, 2013 3:09 pm 文章主題: |
|
|
歡迎找麻煩!
請看圖1,代碼由小而大,列序是1,2,3,4,5...
當我在【代碼】的標題點一下時,會重新排序,請看圖2,代碼由大而小,列序還是1,2,3,4,5... |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 9 樓
|
發表於: 星期一 九月 16, 2013 4:53 pm 文章主題: |
|
|
只弟只增加了這些程式碼:
SELECT &fT_001
pub_num5=RECCOUNT()
pub_str5=SYS(2015)
CREATE CURSOR &pub_str5 (aux N(6,0))
INDEX ON aux TAG aux
FOR _brii=1 TO pub_num5
INSERT INTO &pub_str5 (aux) VALUES (_brii)
ENDFOR
SELECT &fT_001
SET RELATION TO RECNO() INTO &pub_str5 ADDITIVE
看來還得多加研究一些了! |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 10 樓
|
發表於: 星期一 九月 16, 2013 5:06 pm 文章主題: |
|
|
自行改裝,原廠不負保固責任!
而且,很明顯地,您不但改裝,還亂拆零件,
連方向盤和引擎都拆掉啦!
值得安慰的是,雨刷和照後鏡都還健在 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 11 樓
|
發表於: 星期一 九月 16, 2013 5:15 pm 文章主題: |
|
|
別說得那麼難聽啦,
畢竟每個人都有各自的設計風格,
總不希望全部照抄...
您的那些功能在小弟這兒有另外一種方式存在,
小弟只想將列次的概念套進小弟原有的應用內而已,
並不想全部引用您的大作...(怕您有登記著作權 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 12 樓
|
發表於: 星期一 九月 16, 2013 5:27 pm 文章主題: |
|
|
一,小弟口無遮攔,鄭重道歉,下次和下下次不敢了。
二,沒有登記著作權,若有的話,也應屬於 DennisTsai ,概念是他老人家提出來的,我只是代工而已。
三,(小聲但很誠懇地說)您真的漏掉了方向盤和引擎。 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 13 樓
|
發表於: 星期三 九月 18, 2013 7:08 am 文章主題: |
|
|
就功能上而言,
老蔡那段就是引擎了;
再把老蔡的備用欄位(recno n(6))搬回來用,
排序問題應該就不算問題!
小平同志曾說過: 不管是有方向盤還是沒方向盤,會跑的車就是好車... XD
另外,
小弟以為有改進的空間,
像是版面問題...
小弟有些客戶很機車(這麼稱呼育我者父母,養我者客戶是有些過意不去),
在有限的螢幕寬度上,
斤斤計較於顯示欄位的長度,
多一個字就會影響到整體的可視性,
忽然間多了好幾個字的欄位,
評估是過不了關 = ="
因此能否隱藏該欄位, 改以 show ToolTipText 的方式來顯示列次;
或是利用參數決定是否顯示該欄位? |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 14 樓
|
發表於: 星期三 九月 18, 2013 7:42 am 文章主題: |
|
|
jerryclt 寫到: |
小平同志曾說過: 不管是有方向盤還是沒方向盤,會跑的車就是好車... XD |
沒有方向盤的應該是跑在固定軌道上的火車吧。
jerryclt 寫到: |
或是利用參數決定是否顯示該欄位? |
顯然,您不愛看原廠手冊,
本來就有設定參數了。
0.不顯示
1.在最左側
2.在最右側 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 15 樓
|
發表於: 星期三 九月 18, 2013 9:22 am 文章主題: |
|
|
被抓包了 @@
果然在前兩行就說明了...
*!* ShowRowType4Grid = 0 不顥示 1 在第一欄 2 在最後一欄
*!* ShowRecSelect = .T. 顯示勾選框 .F. 不顯示勾選框
另外再請教一個問題,
在用了老蔡引擎後,
1.小缺點:列號那一欄,若 mouse 點進去時,列號會變成空白,不知道有沒有辦法抑止使用者點進去?(感謝sean27 指點,此項已解決)
2.中缺點:用pageup , pagedown , 捲軸 來移動列數,都能即時呈現列號,但如果是用 mouse 的滾輪來捲動的話,新頁的列號會暫時空白,必需等 grid被 setfocus 時,才會秀出列號,雖然不是很嚴重,但總是不很專業(感謝garfield指點,這也解決了)
3.大缺點,如果 Reccount()在超過一萬筆以上時,越捲到後面(比如捲到8,9千筆時),螢幕顯示速度會拖慢
4.小缺點:如果暫時離開Grid,比如去點Form上的某個物件時,所在列的該列列號會暫時空白,必需等返回grid時,才會再秀出列號 (突然多出一個?)
前三點好像都沒問題了不是嗎?
多出來的第四點,
小弟這邊倒是沒發現...
是改裝後的關係嗎 @@? |
|
回頂端 |
|
|
|