Call
call 제어 문은 앞에 sub 문으로 정의된 서브루틴을 호출합니다.
구문:
Call name ( [ paramlist ])
인수:
인수 | 설명 |
---|---|
name | 서브루틴의 이름입니다. |
paramlist | 서브루틴으로 전달할 실제 파라메타의 쉼표로 구분된 목록입니다. 목록의 각 항목은 필드 이름, 변수 또는 임의의 표현식이 될 수 있습니다. |
call 문으로 호출하는 서브루틴은 스크립트 실행 시 초반에 발견되는 sub 문으로 정의되어 있어야 합니다.
파라메타는 서브루틴으로 복사되며, call 문에 있는 파라메타가 변수이고 표현식이 아니라면 서브루틴이 종료될 때 다시 역으로 복사됩니다.
제한 사항:
-
call 문은 제어 문이고 세미콜론 또는 줄 끝 중 하나로 끝나므로 줄 경계를 넘어가지 말아야 합니다.
-
제어 문(예: if..then) 내에서 Sub..end sub를 사용하여 서브루틴을 정의하면 동일한 제어 문 내에서만 서브루틴을 호출할 수 있습니다.
이 예는 폴더 및 하위 폴더의 모든 Qlik 관련 파일을 나열하고 테이블에 파일 정보를 저장합니다. 폴더에 대해 Apps라는 이름의 데이터 연결을 만들었다고 가정합니다.
DoDir 서브루틴은 폴더 'lib://Apps'에 대한 참조를 통해 파라메타로 호출됩니다. 서브루틴 내에는 재귀 호출 Call DoDir (Dir)이 있으며 이 재귀 호출을 통해 함수가 하위 폴더에서 재귀적으로 파일을 찾을 수 있습니다.
sub DoDir (Root) For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc', 'qvf' 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://Apps')