"欄位資料不存(50502)" 錯誤,對於一個初學者而言是不可承受的重,甚至要放棄使用XQ改用EXCEL

  •   150 
  • 最後發表   Tony92  2023 四月 21
Tony92 發文於   2023/04/19


XS 使用問題搜尋 "欄位資料不存(50502)" 其實也不少人反映過了 ??

我個人會多種程式語言,除錯總是最痛苦的,明明程式邏輯沒錯執行結果卻不如預期,

常常整天都在思考問題所在,因為使用者只能用print 印出資料逐一找出問題,但源頭的錯誤或防呆設計絕對是必要的

excel 也有 IfError()  與 #VALUE 來防止資料錯誤,
excel VBA 有 on error resume/goto xxx等
建議:
(1)增加一些函數
例如:
 chkERR(運算式, 錯誤時傳回此值)
 ==> chkERR(getfield("本益比","D"),-99)
 讓取得欄位或運算過程有錯或缺少資料時得以繼續執行並且獲得可預期效果
 也不用更動原設定太多地方

(2)print() 顯示出錯誤的欄位名稱或行數,快速除錯 (目前只能用逐行刪去法太累人了)

(3) 友善的除錯: print() 出 condition?? 結果篩選統計

(4) 可否增加執行階段的 [即時顯示] 如java  alert() /excel msgbox() ...
    馬上判斷數值狀況也有助於除錯時間與友善初學者學習.

排序方式: 標準 | 最新
Tony92 發文於   2023/04/19

補充:

某支股票可能會有不少很基本的欄位都會有無資料的情形

如剛上市櫃的股票根本沒有財報等....

所以也就無資料,依據資料格式做內定值傳回

數值: -999

logic: false

date: 0

文字: *null*

此做法在 javascript很常見

XQ小幫手 發文於   2023/04/21

Hello Tony92,

 

您可以使用 GetFieldDate 來判斷該次運算中欄位的期別是否有對應的資料。

如果沒有資料的話會回傳0。

 

print() 出 condition?? 結果篩選統計 小幫手不太清楚您想表達什麼。

現在的腳本中已經能夠作到 print(condition1); 來印出該次運算 condition1 的布林值。

 

其他的建議小幫手會轉告相關人員作參考。

發表回覆
Close