函數先把項目字串中的項目以遞增排序,然後傳回某指定的項目,假如項目串裡包含了子項目串 (sub-item) ,你可以指定用以排序的子項目,函數可以傳回所整個項目項目中的子項目,亦可以傳回項目的在字串中的位置。
語法
ListAscItem(cValueExpr,nItemNumber,cSeparator,nSortSubItem,cSubItemSeparator,cReturnType)
或
ListAscItem(cValueExpr,nItemNumber,cSeparator,cSortExpr,cSubItemSeparator,cReturnType)
參數 |
註釋 |
cValueExpr |
項目串(或傳回項目串的算式) |
nItemNumber |
指定傳回第幾個項目(依排序後的次序) |
cSeparator |
項目串的項目分隔字串(可多於一字元),預設為 ',' |
nSortSubItem |
指定以第幾個子項目串排序(假如有子項目串的話),假如省略了,系統會用整個項目排序。 |
cSortExpr |
以 ListCol( ) 及ListColVal( ) 組成的算式用以決定排序的值,ListCol( ) 用以指定子項目字串,ListColVal( ) 則把指定的子項目字串化成數字,請參閱下面的例子以了解 ListCol( ) 和 ListColVal( ) 的使用方法。假如cSortExpr參數省略了,系統會用整個項目排序。 |
cSubItemSeparator |
子項目串中的項目分隔字串(可多於一字元),預設為 '-' |
cReturnType |
'I':項目在未排序前的次序 'R':傳回整個項目 省略或其他任何字: 傳回用以排序的子項目串 |
回傳值
Character
例子
ListAscItem('Orange,Apple,Grape,Pear',2)
傳回Grape。項目排序後變成了 'Apple,Grape,Orange,Pear',排序後排二位的項目是 'Grape'。
ListAscItem('12:45/6:00/9:40',3,'/',2,':','I')
傳回1。在項目串中第二子項目分別為 '45','00' 和 '40',依第二子項目排序以後項目串變成了 '6:00/9:40/12:45',排三位的項目是 '12:45',這是未排序前的第一項目,所以函式傳回1(cReturnType='I')。
ListAscItem('5-4,23-15,3-26',1,,2)
傳回 '15'。在項目串中第二子項目分別為 '4','15' 和 '26',請留意當比較字串時 '4' > '15' (因 '4' > '1',和數字的比較 4 < 15不同),所以排序後字串變為 '23-15,5-4,3-26' ,所以函式傳回 15。
ListAscItem('5-40,23-15,3-26',1,,2,,'R')
傳回 '23-15'。本例和上例機乎完全相同,不同的是函數傳回了整個項目(cReturnType='R')。
在下圖的檢視中「負重名次」欄利用HrHistoryList( ) 函數一次過提取了8程往績的負重和名次,「最輕」和「最佳」兩欄分別把負重和名次作遞增排序,然後提取排頭的數字,因為檢視只需搜尋往績一次,這比用 HrMinimum('HrWeight( )',8) 和 HrMinimum('HrFP( )',8) 搜尋往績兩次以取得同樣的資料速度更快。
欄名 |
算式 |
類別 |
馬匹 |
內置欄 |
|
負重名次 |
HrHistoryList("Str(HrWeight( ),3)+'-'+Str(HrFP( ),2)",8) |
Text (56) |
最輕 |
ListAscItem(Column('負重名次'),1,,1) |
Text (3) |
最佳 |
ListAscItem(Column('負重名次'),1,,2) |
Text (2) |
ListAscItem('5-4,6-1,2-6',1,,'ListColVal(1)+ListColVal(2)')
傳回 '6-1'。參數 'ListColVal(1)+ListColVal(2)' 表示用第1子項目的數值和第2 子項目的數值之和排序:
項目 |
ListColVal(1)+ListColVal(2) |
'5-4' |
5 + 4 = 9 |
'6-1' |
6 + 1 = 7 |
'2-6' |
2 + 6 = 8 |
由於 7<8<9,故此在排序之後項目串變成 '6-1,2-6,5-4',函數傳回排第一的位 '6-1'。
ListAscItem('5-4,6-12,2-6',1,,'ListCol(1)+ListCol(2)')
傳回 '6-1'。參數 'ListCol(1)+ListCol(2)' 表示用第1子項目的文字和第2 子項目的文字合併成的字串排序:
項目 |
ListCol(2)+ListCol(1) |
'5-4' |
'4' + '5' = '44' |
'6-12' |
'12' + '6' = '126' |
'2-6' |
'6' + '2' = '62' |
由於 '126'<'44'<'62' (注意:由於 '1'<'4',所以 '126'<'44'),故此在排序之後項目串變成 '6-12,5-4,2-6',函數傳回排第一位的 '6-12'。
參閱
ListDescVal( ) | ListDescVal( ) | ListAscVal( ) | ListItem( ) | ListVal( ) | ListSum( ) | ListAverage( ) | ListFilter( )
Page url: http://www.racematenet.com/help/index.html?listascitem.htm