此函數把一算式的值以一名稱儲存在一賽事之中,我們稱此一名稱為賽事變數。當你在一檢視的某一場賽事之中使用函數 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 中直接提取,所以每列均有相同的值,所以在住績列之中「本賽平均年齡」和「平均年齡」兩欄的數值再不會相同,而住績列中「年齡差」一欄所顯示的是在以往出賽時馬匹的年齡和「本賽」的平均年齡之差。
參閱
Page url: http://www.racematenet.com/help/index.html?racevar.htm