<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여보세요,
여러 문자 값이있는 하나의 열 ( "BIN")이 있고 데이터 집합의 각 행은 테스트 된 고유 한 단위를 나타냅니다. 데이터 집합을 변환 / 요약하지 않고 "BIN"열 내의 모든 고유 값 집합과 함께 ListBox 대화 상자를 표시하는 열 수식을 만들고 싶습니다. ListBox에서 원하는 값을 선택한 후 "BIN"열에 값이있는 단위의 값은 생성 된 열 ( "BIN_DISPOSITION")에 대해 1로 설정되고 "BIN"열 "ListBox 선택 항목과 일치하는 값은 생성 된 열 ("BIN_DISPOSITION ")에 설정된 값 0을 갖습니다.
예:
사용자가 수식 열을 실행하고 "BIN2"및 "BIN3"을 선택하는 경우 다음 출력이 필요합니다.
단위#
| 큰 상자 | BIN_DISPOSITION (열 수식으로 생성) |
|---|
Unit1 | BIN1 | 0 |
| Unit2 | BIN2 | 1 |
| Unit3 | BIN2 | 1 |
| Unit4 | BIN1 | 0 |
| Unit5 | BIN3 | 1 |
스크립트:
bin_values_all = {} ;
bin_values_all_sorted = {} ;
bin_values_selected = {} ;
만약 ( 열 () == 1 ,
각 행에 대해 ( 만약 ( ! 내용 ( bin_values_all , : 큰 상자 [ 열 ()]) ,
에 집어 넣다 ( bin_values_all , : 큰 상자 [ 열 ()])
) ;
bin_values_all_sorted = 오름차순 정렬 ( bin_values_all ) ;
새창 ( "BIN 값 선택" , 모달,
개요 상자 ( "BIN 값 선택" ,
파운드 = 리스트 박스 (
bin_values_all_sorted
) ,
단추 상자 ( "승인" ,
bin_values_selected = 파운드 << GetSelected
) ;
만약 ( 내용 ( bin_values_selected , : 큰 상자 ) ,
1 ,
0
) ;
조건부 If (Row () == 1 ...)를 추가하여 대화 상자와 목록 생성이 두 번 이상 실행되지 않도록해야했지만, 위의 내 변수 선언은 매번 다시 초기화되는 것으로 보입니다. 내가 원하는 것이 아니다.
이 작업을 수행 할 수있는 기본 제공 방법이 있는지 확실하지 않았습니다.
누구나 아이디어가 있는지 궁금합니다.
감사,
JP
나는이 일을하는 법을 알아 냈다.
첫 번째 조건문 앞에 목록을 초기화하는 대신 Row () == 1 경우에 넣고 '::'접두사를 사용하여 전역 변수로 변환했습니다.
만약 ( 열 () == 1 ,
:: bin_values_all = {} ;
:: bin_values_all_sorted = {} ;
:: bin_values_selected = {} ;
각 행에 대해 ( 만약 ( ! 내용 ( bin_values_all , : 큰 상자 [ 열 ()]) ,
에 집어 넣다 ( bin_values_all , : 큰 상자 [ 열 ()])
) ;
bin_values_all_sorted = 오름차순 정렬 ( bin_values_all ) ;
새창 ( "BIN 값 선택" , 모달,
개요 상자 ( "BIN 값 선택" ,
파운드 = 리스트 박스 (
bin_values_all_sorted
) ,
단추 상자 ( "승인" ,
bin_values_selected = 파운드 << GetSelected
) ;
만약 ( 내용 ( bin_values_selected , : 큰 상자 ) ,
1 ,
0
) ;