
資料欄位是字串或是數字,目前想要做一個排序的功能,但不知從何下手,
請知道的給個方向建議或是範例,感謝!
需要的功能下:
當我按下最上面欄位"年齡"時,年齡會從最小排到最大,再按一次則相反,且資料需要連同姓名、學號...等等,做整體性的排序。

資料欄位是字串或是數字,目前想要做一個排序的功能,但不知從何下手,
請知道的給個方向建議或是範例,感謝!
需要的功能下:
當我按下最上面欄位"年齡"時,年齡會從最小排到最大,再按一次則相反,且資料需要連同姓名、學號...等等,做整體性的排序。
1.用Event Structure判斷滑鼠在Table上按下.
2.判定按下的位置是在Column Headers上嗎?
3.判定排序是小到大還是大到小.
4.排序用數字或字串.
下面程式給你參考
[QUOTE=DonWang]
1.用Event Structure判斷滑鼠在Table上按下.
2.判定按下的位置是在Column Headers上嗎?
3.判定排序是小到大還是大到小.
4.排序用數字或字串.
下面程式給你參考
[/QUOTE]
這也是一個好方法,小問題是程式無法停止喔
非常感謝您,就是需要這種東西,比我想像中的簡短,但比較高級,有些不明白。
不過程式真的停不下來耶(我在想可能會是mouse down那邊的問題)

關於程式流程想請問:
1.您使用的排序迴圈邏輯是?
最後一個true迴圈應該是做整體一起變動的,不過前三個迴圈就不是很明白了。
2.亮燈部分,是如何判斷我按哪一個column?不明白呢!
可以試試用Multicolumn Listbox
1.因為Event Structure沒加Timeout加上就OK了.按Stop就會停止.
2.我的程式中隱藏有1個布林與數字.新程式秀出來給你看你會較了解.
3.布林的目的在決定由小排到大,還是由大排到小.
4.數字的目的在了解前一次排序的位置與這次是否相同?就在0[0..2]頁若不相同則布林就"OFF",表示第1次按由小排到大.
5.1[0..2]頁舉例說明,當按下"姓名"位置,比較(0,0)<(1,0)嗎?若"OFF"表示(0,0)>(1,0),若布林也是"OFF"就會"True",0列與1列交換.相同若(0,0)<(1,0)且布林也是"ON"也一樣交換.
6.之後(0,0)陸續與(2,0),(3,0),(4,0)比較後(0,0)就是最小或最大.
7.之後(1,0)陸續與(2,0),((3,0),(4,0)比較產生第2小或大.




DonWang40451.85320601858.之後(2,0)陸續與(3,0),(4,0)比較產生第3小或大.
9.而 Default與(1,2)的case則分別表示處理文字與數字.
10外面(-1)的case表示下的位置是在Column Headers.
程式說明如上,如有問題在互相討論.

感謝Donwang的詳細解說,
您所說的註解我已將它們放到各元件旁邊提供程式註解,提供大家下載。
因為我程度較差,所以此畫面各迴圈內容您說得很清楚,但我聽得粉模糊,
不知道您所說的1234項,是對應到哪個loop裡面?
非常感謝您的細心跟耐心^^
[QUOTE=bbsda01]

感謝Donwang的詳細解說,
您所說的註解我已將它們放到各元件旁邊提供程式註解,提供大家下載。
因為我程度較差,所以此畫面各迴圈內容您說得很清楚,但我聽得粉模糊,
不知道您所說的1234項,是對應到哪個loop裡面?
非常感謝您的細心跟耐心^^
[/QUOTE]
請問有大大能將這程式轉成8.0的嗎QQ??
小弟是用8.0的大大們的程式都開不了囧a
拜託拜託,感恩!!
拜託有沒有大大能幫小弟轉換成8.0呢QQ??
感恩><!!
[QUOTE=tjames111]
拜託有沒有大大能幫小弟轉換成8.0呢QQ??
感恩><!!
[/QUOTE]
我所貼的第一二個連結都還有效,而且是7.1版以上就可開啟
PS.你也可以參考以下連結
http://search.ni.com/nisearch/app/main/p/bot/no/ap/global/lang/en/pg/1/q/sort%202D%20array%20string/
ancle41141.5690972222[QUOTE=bbsda01]

[/QUOTE]
小弟是希望這個程式8.0化QQ
拜託了><感恩QQ
[QUOTE=tjames111][QUOTE=bbsda01]
[/QUOTE]
小弟是希望這個程式8.0化QQ
拜託了><感恩QQ
[/QUOTE]
FYI
[QUOTE=ancle][QUOTE=tjames111][QUOTE=bbsda01]
[/QUOTE]
小弟是希望這個程式8.0化QQ
拜託了><感恩QQ
[/QUOTE]
FYI
[/QUOTE]
感激不盡!!
很奇怪,小弟將這程式融入自己寫的程式中
但按下後Table Contorl閃了一下後還是維持著同樣的狀態
一開始是想說會不會有地方接錯?
但看了一下發現沒有
然後用單步執行(Highlight Execution)去看,Table Contorl就確實的慢慢的一個一個去比對並放置
等離開單步執行後,又跳回原本未執行前的樣子了= =
目前研究是覺得
因為小弟Table Contorl內的值會一直在做不斷的更新
所以瞬間,我的排序做了更動,但值也隨之進來便覆蓋掉以排序好的值了
目前是想這樣改
當我Table Contorl的值變化的時候
就執行排序
所以就小弟的認知,原本事件迴圈是不是要從"當滑鼠按下時"改成"值變化時"呢?
但想了老半天不知道該怎麼改@@
不知道有沒有大大能提點提點呢QQ?
感恩!
[QUOTE=tjames111]
目前研究是覺得
因為小弟Table Contorl內的值會一直在做不斷的更新
所以瞬間,我的排序做了更動,但值也隨之進來便覆蓋掉以排序好的值了
目前是想這樣改
當我Table Contorl的值變化的時候
就執行排序
所以就小弟的認知,原本事件迴圈是不是要從"當滑鼠按下時"改成"值變化時"呢?
但想了老半天不知道該怎麼改@@
不知道有沒有大大能提點提點呢QQ?
感恩!
[/QUOTE]
你可以參考以下文章