Loop layout으로 객체와 배열 반복 표시
Loop layout은 객체 집합의 객체 또는 배열의 원소마다 자식 모듈을 하나씩 표시합니다. 각 인스턴스는 자체 변수 범위와 레이아웃 상태를 가집니다. 정해진 기능의 표나 목록 대신 Workshop의 레이아웃과 위젯을 조합하여 항목별 화면을 만들 수 있습니다.
가상 티켓 관리 예에서는 세 객체 집합을 열별 Loop에 연결하고 티켓 카드 하나를 자식 모듈로 구성합니다. 각 카드에 필요한 내용과 액션을 배치하여 칸반 형태로 사용할 수 있습니다.
객체 집합 반복
입력 방식으로 Object set을 선택하고 Object set to loop through에 변수를 연결합니다. 각 객체로 자식 모듈 인스턴스를 구성합니다.
속성 정렬로 표시 순서를 정할 수 있습니다. 사용자 정의 순서가 필요하면 함수 기반 객체 집합 변수에서 원하는 순서의 Static object set을 반환하는 경로도 있습니다.
한 객체 유형의 비정적 집합에는 사용자가 지정한 정렬 뒤에 기본 키 정렬을 추가하여 순서를 안정적으로 유지합니다. 기본 키가 정렬 가능한 속성이 아니면 Loop가 표시되지 않을 수 있습니다.
배열 반복
String, Boolean, Number, Date, Timestamp와 Struct 등의 배열을 반복할 수 있습니다. Array to loop through에 배열 변수를 연결합니다.
각 원소의 위치가 표시 순서입니다. 배열에 원소를 추가하거나 순서를 바꾸거나 삭제하면 Loop에도 반영합니다.
페이지와 표시 방식
| 설정 | 동작 |
|---|---|
| Limit | Max items to display로 정한 처음 항목들만 한 페이지에 표시합니다. |
| Paged | Max items per page로 정한 크기로 페이지를 나눕니다. 객체 집합은 처음 10,000개 객체까지만 페이지 탐색할 수 있습니다. |
| List | 항목을 목록으로 표시합니다. 추가 표시 옵션은 없습니다. |
| Grid | 격자로 표시하며 최대 열 수와 카드의 최소 너비를 픽셀로 지정할 수 있습니다. |
두 표시 방식 모두 자식 모듈의 최상위 섹션에 고정 또는 최대 높이를 설정하면 행의 높이를 일정하게 맞출 수 있습니다.
자식 모듈 선택과 초기 구성
Compass 선택기에서 기존 모듈을 선택하거나 Create new로 새 자식을 만듭니다. 객체 집합을 반복한다면 자식에 Object set 유형의 모듈 interface 변수가 필요합니다. 배열을 반복한다면 각 원소의 자료형에 맞는 interface 변수가 필요합니다.
Create new는 입력에 맞는 interface와 표시 위젯을 준비합니다.
| 입력 | 새 모듈에 준비하는 표시 |
|---|---|
| 객체 집합 | Object Set Title |
| 배열 | 원소값을 표시하는 Markdown |
| Struct Array | Struct interface와 필드를 Markdown에 표시하는 변수 변환 |
항목별 입력과 공통 변수
Interface variable 설정에서 각 객체 또는 배열 원소를 받을 자식 interface 변수를 고릅니다. 이 항목별 입력을 자식에서 Set variable value 등으로 바꾸면 예상하지 않은 동작이 생길 수 있습니다.
그 외 interface 변수의 매핑은 Embedded Module 위젯과 같습니다. 이 추가 변수들은 모든 반복 인스턴스와 부모가 같은 참조를 공유하므로 자식에서 값을 변경할 수 있습니다.
예를 들어 공통 selected object 변수에 각 카드의 이벤트가 선택값을 쓰면 부모가 그 선택을 사용할 수 있습니다. 반면 항목마다 달라져야 하는 계산값은 전달된 객체 또는 배열 원소에서 구합니다. 공통 변수에 인스턴스별로 다른 초기값을 넣는 방식으로 사용하지 않습니다.
여백과 로딩
Padding은 반복되는 각 자식 모듈 주위에 적용합니다. Padding을 설정했다면 Inner border style도 각 인스턴스에 적용할 수 있습니다.
Delay loading items until shown을 켜면 항목이 보일 때만 렌더링합니다. 항목 수가 많거나 자식의 계산 비용이 큰 경우 초기 로드를 줄이는 데 사용할 수 있습니다. 위젯 생명주기 설정은 현재 Loop 페이지에 적용하며 페이지 이동 시 위젯 상태가 초기화될 수 있습니다.