對上一層:  模型程式語言參考手冊 > 資料提取輔助函數 >

RaceVar( )

Print this Topic Previous pageReturn to chapter overviewNext page

此函數把一算式的值以一名稱儲存在一賽事之中,我們稱此一名稱為賽事變數。當你在一檢視的某一場賽事之中使用函數 RaceVar(cVariableName, "eMCLExpr") 的時候,系統會先在該場賽事之中找尋變數 cVariableName 是否存在,假如變數已經存在的話,系統會直接傳回該變數所儲存的數值,不會計算 eMCLExpr,假如系統找不到以變數cVariableName 的話,系統便會計算 eMCLExpr 算式,把所得的數值儲存在賽事變數 cVariableName 之中,並傳回計算所得之值,請留意賽事變數的以下特點:

1.賽事變數獨立於每一場賽事,當你同一檢視開啟每一新賽事,系統都會另行計算和儲存此賽事變數的數值
2.當你開展往績的時候,雖然往績列所顯示的不是本賽的資料,可是賽事變數並不會重新計算
3.如上點所述,由於系統會在往績中顯示了本賽的賽事變數值,所有含有 RaceVar( ) 算式的欄,系統會都會自動把它的類別設定為「每次都重計」(下圖),令往績中的變數值不會殘留在檢視資料暫存區之中,使在觀看其他有關賽事的時候,不會顯示殘留的錯誤數值

 

 

4.賽事變數的數值儲存在暫存區之中的變數資料檔之中,當你按「重計」鍵的時候,系統只會重新計算資料暫存區之中的檢視資料,而不會重新計算變數的值,假如你要重新計算變數值,你可以先按下 Shift 鍵,然後戢「重計」鍵(當你修改算式的時候,變數亦會自動重新計算)。
5.賽次變數(通過 RaceVar( ) 存取)和賽事變數(通過 StartVar( ) 存取)在變數暫存區中各自有獨立的儲存位置,所以同一檢視之中可以有相同名稱的賽次變數和賽事變數,它們的數值不會互相干擾。

 

語法

RaceVar(cVariableName,"eMCLExpr")

 

回傳值

資料類別與算式eMCLExpr所傳回的資料類別相同

 

例子

RaceVar('AvgAge','RunnersAVG("HrAge( )")')

函數把賽事馬匹的平均年齡儲存在賽事變數AvgAge之中,供同一賽事的其他資料列使用。

下圖檢視的結構如下:

欄名

算式

資料類別

馬匹

(內置欄)

 

馬齡

(內置欄)

 

本賽平均年齡

RaceVar('AvgAge','RunnersAVG("HrAge( )")')

N(4,1)

平均年齡

RunnersAVG("HrAge( )")

N(4,1)

與本賽平均年齡差

HrAge( )-Column('本賽平均年齡')

N(4,1)

與平均年齡之差

HrAge( )-Column('平均年齡')

N(4,1)

 

在上圖的檢視中,雖然「本賽平均年齡」和「平均年齡」有相同的計算結果,但「平均年齡」一欄的算式每列都會重新計算,而在「本賽平均年齡」欄的平均年齡算式則放在RaceVar( ) 之中,算式在第一次計算之後,結算會儲存在賽事變數 AvgAge 之中,以後系統可以直接使用這儲存值而無須再次計算,故此速度遠比「平均年齡」一欄為快。

下圖顯示在中同一檢視中開展了兩程往績,你可以見到在往績列中「本賽平均年齡」一欄的值仍然在賽事變數 AvgAge 中直接提取,所以每列均有相同的值,所以在住績列之中「本賽平均年齡」和「平均年齡」兩欄的數值再不會相同,而住績列中「年齡差」一欄所顯示的是在以往出賽時馬匹的年齡和「本賽」的平均年齡之差。

 

參閱

StartVar( )

 

 


Page url: http://www.racematenet.com/help/index.html?racevar.htm