목록 참조 문제설치 창을 통해 사용자 입력을 받아 해당 정보를 기반으로하는 부적합한 비용 데이터를 처리하는 스크립트가 있습니다. costcols 함수의 일부로 입력 된 NC 코드 및 처분 (첨부 된 그림 참조 또는 스크립트 실행)의 데이터를 사용하는 데 문제가 있습니다. 이 함수의 목적은 : DISP.TYPE이 확인 된 처분 옵션 중 하나가 아니고 입력 된 각 코드에 대해 NC.QTY * : COST를 곱하는 새로운 열을 만드는 모든 행을 제거하는 것입니다. 스크립트는 해당 기능을 제외하고는 올바르게 실행됩니다. 내가 생각할 수있는 유일한 방법은 내가 다른 목록을 설정하거나 참조하는 방법에 문제가 있다는 것입니다. NC 코드에는 두 가지 목록이 있으며 처분에는 두 가지 목록이 있습니다. 첫 번째는 체크 박스 결과로 액션을 취해야 하는지를 결정하고 두 번째는 스크립트에서 검색 할 값을 포함 하는지를 결정합니다. 코드는 이동 가능하지만 처분은 주어진 체크 박스와 일치하도록 하드 코드됩니다.
addcols = Function({},
CCT<<NEW column=""></NEW>Re : 목록 참조 문제앞으로 입력 코드가 올바르게 표시되도록 모든 열을 가져 왔으므로 다른 시간 범위 (월, 연도 등)에 걸쳐 NC 코드별로 요약 테이블을 만드는 것이 좋습니다. 전에 요약 테이블을 작성했지만 사용자가 최대 5 개의 NC 코드를 입력 할 수 있으므로 가변적 인 수의 열과 절대로 비교할 수 없습니다. 이것을 할 수있는 방법이 있습니까?
Re : 목록 참조 문제그것은 훨씬 더 단순하게 만듭니다! 지금부터는 그 형식을 사용할 것입니다.
Re : 목록 참조 문제평가 목록 기능에 추가하면 문제가 해결되었습니다! 감사!
Re : 목록 참조 문제나는 EvalList도 사용하도록 제안하려고했다. "dispchecks [d]"를 참조하면 해당 위치의 변수로만 평가되며 절대 1이 될 수 없습니다. 평가 목록은 실제 값을 목록에 나타냅니다.
또한, 미래의 긴 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"
);
Re : 목록 참조 문제어쩌면 진화론자 (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 ()는 변수 이름을 실제 값으로 변환합니다. 이는 내가 원하는 것으로 생각합니다.
Re : 목록 참조 문제그건 의미가 있습니다. 그 점을 지적 해 주셔서 감사합니다. 스크립트의 해당 섹션을 업데이트했지만 목록을 참조하는 원래 문제와 여전히 고심하고 있습니다.
Re : 목록 참조 문제귀하의 코드에서 잠재적 인 문제가 있음을 발견했습니다.
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);
);