列表參考問題我有一個腳本,通過設置窗口接收用戶輸入,並根據該信息處理不合格成本數據。我在使用輸入NC代碼和處置中的數據(參見附圖或運行腳本)時遇到問題,這是costcols函數的一部分。該函數的目標是刪除以下行:DISP.TYPE不是已檢查的處理選項之一,然後為每個輸入的代碼創建一個倍數的新列:NC.QTY *:COST。除了那個函數之外,腳本運行正常。我唯一能想到的是我如何設置或引用不同的列表存在一些問題。NC代碼有兩個列表,處理有兩個列表。每個的第一個是複選框結果,用於確定是否需要採取操作,第二個包含要在腳本中搜索的值。代碼是可以修改的,但是處理是硬編碼的,以與給定的複選框相對應。
addcols = Function({},
CCT<<NEW column=""></NEW>回复:列出參考問題繼續前進,現在我輸入的代碼的所有列都正確顯示,就是在不同的時間範圍(月,年等)上為每個NC代碼創建匯總表。我之前已經完成了匯總表,但由於用戶最多可以輸入5個NC代碼,因此從不使用可變數量的列。有沒有辦法做到這一點?
回复:列出參考問題這讓事情變得簡單了!從現在開始我將開始使用該格式。
回复:列出參考問題添加Eval List功能修復了問題!謝謝!
回复:列出參考問題我打算建議你也使用EvalList。當您引用“dispchecks [d]”時,它僅計算該位置的變量,該變量永遠不能等於1。Eval List將使實際值顯示在列表中。
此外,我有一個未來很長的If語句的提示。您可以在同一個If語句中放置許多條件,從而大大降低了具有大量條件時的複雜性。下面的摘錄等同於公式列中的If語句組。
If(
Month( :DETECT.DATE ) == 1, "January",
Month( :DETECT.DATE ) == 2, "February",
Month( :DETECT.DATE ) == 3, "March",
Month( :DETECT.DATE ) == 4, "April",
Month( :DETECT.DATE ) == 5, "May",
Month( :DETECT.DATE ) == 6, "June",
Month( :DETECT.DATE ) == 7, "July",
Month( :DETECT.DATE ) == 8, "August",
Month( :DETECT.DATE ) == 9, "September",
Month( :DETECT.DATE ) == 10, "October",
Month( :DETECT.DATE ) == 11, "November",
Month( :DETECT.DATE ) == 12, "December",
"You did something wrong"
);
回复:列出參考問題也許這裡需要使用evallist()。 嘗試運行此代碼:
code1a = "aaa";
code2a = "bbb";
code3a = "ccc";
code4a = "ddd";
code5a = "eee";
codechecks1 = {code1a, code2a, code3a, code4a, code5a};
codechecks2 = evallist({code1a, code2a, code3a, code4a, code5a});
print(codechecks1);
print(codechecks2);
如您所見,evallist()將變量名稱轉換為實際值,這是我認為您想要的。
回复:列出參考問題那講得通。感謝您指出了這一點。我已經更新了腳本的那一部分,但我仍在努力解決引用列表的原始問題。
回复:列出參考問題我在你的代碼中發現了一個潛在的問題:
CCT<SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN>Select Where<SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">:</SPAN>DISP<SPAN class="token punctuation">.</SPAN>TYPES <SPAN class="token operator">==</SPAN> <SPAN class="token string">"NOTDEFINED"</SPAN> <SPAN class="token operator">|</SPAN> <SPAN class="token punctuation">:</SPAN>DISP<SPAN class="token punctuation">.</SPAN>TYPES <SPAN class="token operator">==</SPAN> <SPAN class="token string">"DEVIATE"</SPAN> <SPAN class="token operator">|</SPAN> <SPAN class="token punctuation">:</SPAN>DISP<SPAN class="token punctuation">.</SPAN>TYPES <SPAN class="token operator">==</SPAN> <SPAN class="token string">"REVIEWED & REVERSED"</SPAN> <SPAN class="token operator">|</SPAN> <SPAN class="token punctuation">:</SPAN>DISP<SPAN class="token punctuation">.</SPAN>TYPES <SPAN class="token operator">==</SPAN> <SPAN class="token string">"SCRAP"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
CCT<SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN>Delete Rows<SPAN class="token punctuation">;</SPAN>
CCT<SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN>Clear Select<SPAN class="token punctuation">;</SPAN>
如果您的select語句沒有找到任何內容,您將在日誌中收到有關未選擇任何內容的錯誤消息,請執行以下操作:
del_rows = CCT << get rows Where(:DISP.TYPES == "NOTDEFINED" | :DISP.TYPES == "DEVIATE" | :DISP.TYPES == "REVIEWED & REVERSED" | :DISP.TYPES == "SCRAP");
if (nrows(del_rows) > 0,
cct << delete rows(del_rows);
);