列表参考问题我有一个脚本,通过设置窗口接收用户输入,并根据该信息处理不合格成本数据。我在使用输入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);
);