기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

For each..next

for each..next 제어 문은 쉼표로 구분된 목록의 각 값을 대상으로 하나 또는 여러 문을 실행하는 스크립트 반복 구조입니다. 목록의 각 값에 대해 fornext로 묶인 루프 내의 문이 실행됩니다.

구문:  

특수한 구문을 사용하면 현재 디렉터리 내의 파일과 디렉터리 이름으로 목록을 생성할 수 있습니다.

for each var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

인수:  

인수
인수설명
var각 루프 실행을 위해 목록에서 새 값을 가져오는 스크립트 변수 이름입니다. varnext 다음에 지정된 경우, 이 이름은 해당하는 for each 다음에 오는 이름과 동일해야 합니다.

var 변수의 값은 루프 내의 문에서 변경할 수 있지만 이것은 좋은 프로그래밍 방법이 아닙니다.

루프 내에서 exit for 절이 나올 경우 스크립트 실행이 루프의 끝을 나타내는 next 절 다음 첫 번째 문으로 전환됩니다. 선택적으로 when 또는 unless 접미사를 사용하여 exit for 절을 조건부로 만들 수 있습니다.

정보 메모for each..next 문은 제어 문이므로 세미콜론이나 줄 끝(EOL)으로 끝나며 여기에 포함될 수 있는 세 절(for each,exit fornext)은 줄 경계를 넘지 않아야 합니다.

구문:  

list := item { , item }

item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask

 

인수
인수설명
constant임의의 숫자 또는 문자열입니다. 스크립트에 직접 포함되는 문자열은 작은따옴표로 묶어야 합니다. 작은따옴표가 없는 문자열은 변수로 해석되며 변수의 값이 사용됩니다. 숫자는 작은따옴표로 묶을 필요가 없습니다.
expression임의의 표현식입니다.
mask

표준 와일드카드 문자 *?를 비롯한 유효한 파일 이름 문자를 포함할 수 있는 파일 또는 디렉터리 이름 마스크입니다.

절대 파일 경로 또는 lib:// 경로를 사용할 수 있습니다.

conditionTrue 또는 False로 평가되는 논리 표현식입니다.
statements하나 이상의 Qlik Sense 스크립트 문의 그룹입니다.
filelist mask

이 구문을 사용하면 현재 디렉터리에서 파일 이름 마스크와 일치하는 모든 파일의 쉼표로 구분된 목록이 생성됩니다.

dirlist mask

이 구문을 사용하면 현재 폴더에서 폴더 이름 마스크와 일치하는 모든 폴더의 쉼표로 구분된 목록이 생성됩니다.

fieldvaluelist mask이 구문은 Qlik Sense로 이미 로드된 필드 값을 통해 반복합니다.
경고 메모Qlik 웹 저장소 공급자 커넥터 및 기타 DataFiles 연결은 와일드카드(*?) 문자를 사용하는 필터 마스크를 지원하지 않습니다.

예 1: 파일 목록 로드

// LOAD the files 1.csv, 3.csv, 7.csv and xyz.csv for each a in 1,3,7,'xyz' LOAD * from file$(a).csv; next

예 2: 디스크의 파일 목록 만들기

이 예에서는 폴더에 있는 모든 Qlik Sense 관련 파일 목록을 로드합니다.

sub DoDir (Root) for each Ext in 'qvw', 'qva', 'qvo', 'qvs', 'qvc', 'qvf', 'qvd' for each File in filelist (Root&'/*.' &Ext) LOAD '$(File)' as Name, FileSize( '$(File)' ) as Size, FileTime( '$(File)' ) as FileTime autogenerate 1; next File next Ext for each Dir in dirlist (Root&'/*' ) call DoDir (Dir) next Dir end sub call DoDir ('lib://DataFiles')

예 3: 필드 값 a를 통해 반복

이 예에서는 로드된 FIELD 값의 목록을 통해 반복하고 새 필드인 NEWFIELD를 생성합니다. FIELD의 각 값에 대해서는 두 NEWFIELD 레코드가 생성됩니다.

load * inline [ FIELD one two three ]; FOR Each a in FieldValueList('FIELD') LOAD '$(a)' &'-'&RecNo() as NEWFIELD AutoGenerate 2; NEXT a

결과 테이블은 다음과 같습니다.

Example table
NEWFIELD
one-1
one-2
two-1
two-2
three-1
three-2

자세한 정보

 

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!