CSV 為什麼同時有 Rating 和 Circle,兩欄為什麼會互相矛盾
SlateX 的 CSV 是逐機位一行,沒有機位的條也會輸出一行;目前表頭與欄序寫死,新欄只能往既有順序的末尾追加,不能把現有欄重排。Rating、Circle 與 Circled On Set 看起來都像在描述現場檔位或圈選,但三欄都從同一枚檔位數值派生,規則不同,所以同一條記錄可能出現看起來不一致的組合。
Rating、Circle與Circled On Set都從同一枚檔位值派生,只是規則不同;不能把它們當成三路獨立的現場狀態。
CSV 的行形態先按機位展開
一條 Take 有幾台機位,CSV 就按機位展開成對應的資料行;如果這一條沒有機位,仍然會輸出一行,只是機位相關欄的缺值形態各不相同:有的留空,有的落到預設值,接收方應逐欄核對。表頭使用固定的英文欄名,欄序也由常數定義,不會跟著 App 介面語言切換。
這一點與《CSV 交付比 ALE 多帶什麼、少帶什麼》的口徑一致:CSV 的欄位結構要按檔案本身核對,不能從另一種交付檔案推斷它會帶有同一套欄。
Rating 把檔位數值翻成固定英文文字
Rating 那一格交的是文字:Circle、Keep、Hold、N/G 四檔之一,沒落檔就是空;旁邊的 Circle 欄不是另一份獨立的現場圈選記錄,而是只在檔位本身為 Circle 時寫 TRUE。這組交付文字恆定英文,不跟介面語言變化。
因此 Rating 是「檔位數值的文字化結果」,不是另外讀一份現場狀態。中文介面、英文介面或其他介面語言可以各有各的顯示文案,但 CSV 這裡仍按固定的英文詞輸出。
Circle 只在檔位本身為 Circle 時寫 TRUE
Circle 欄使用窄規則:只有檔位值對應 Circle 時寫 TRUE;未標檔、Keep、Hold、N/G 都寫 FALSE,不會留空。它不是另一枚獨立記錄的現場圈選狀態。
Circled On Set 使用更寬的派生規則
Circled On Set 同樣由這一枚檔位值派生,但把 Circle 與 Keep 兩檔都算作現場圈選口徑,寫 TRUE;其他檔位寫 FALSE。因此,Keep 條會同時得到 Rating=Keep、Circle=FALSE、Circled On Set=TRUE。這不是三路現場狀態互相矛盾,而是同一檔位值按三套規則輸出。
三欄是同一枚檔位值的三套派生
Rating 把檔位數字翻成固定英文文字;Circle 只在 Circle 檔位為真;Circled On Set 則按 Circle 與 Keep 兩檔為真。三欄都從同一套現場檔位得出,不是三份獨立的現場記錄。因此接收方不能把它們當成互相校驗的獨立來源,也不能用其中一欄替代另外兩欄。
Keep條可以同時得到Rating=Keep、Circle=FALSE、Circled On Set=TRUE;這是同一枚檔位值走三套派生規則的結果。
CSV 還有兩條需要同時看的形態邊界
表頭由常數直接拼接,不經過欄位轉義;資料欄位裡的換行與製表符會先被壓成空格,而不是保留換行之後靠引號包裹。因此不能把這份輸出概括成「符合 RFC4180」。這裡說的是目前的生成形態,不替任何下游試算表或剪輯系統判斷它會怎樣解讀檔案。
欄名也是固定的英文常數,不會跟著 App 語言切換。《ALE 每一欄的值從哪裡來》和《拿到 ALE,先核對這些欄位》所強調的接收原則在這裡同樣成立:接收方應按自己的匯入範本逐欄核對實際欄名、值形態與來源。
FAQ
Rating 會跟著介面語言變化嗎?
不會。CSV 裡的檔位文字是固定的英文常數,未標檔時 Rating 寫空字串。
Circle 為空是不是表示沒有圈選?
Circle 沒有空值分支。只有檔位為 Circle 時寫 TRUE,其他情況一律寫 FALSE。
為什麼 Keep 會得到 Circle=FALSE?
因為 Circle 只在 Circle 那一檔為真,所以 Keep 寫 FALSE。Circled On Set 走更寬的規則,Circle 與 Keep 都寫 TRUE。
可以把 Circle 當成現場圈選狀態嗎?
不能這樣解釋。Circle 只在檔位為 Circle 時為真;Circled On Set 則把 Circle 與 Keep 兩檔都算作真,兩者都只是同一套現場檔位的不同寫法。接收方應按自己的匯入規則核對這三欄的含義。
Axiom One LLC — SlateX