스크립트 예제
도움말에서 제공된 스크립트 예제를 자신만의 스크립트를 위한 출발점으로 사용할 수 있습니다. 더 많은 예제 스크립트와 추가 도움말을 보려면 Claris Community를 참조하십시오.
FileMaker Pro에서 스크립트 보기:
-
스크립트 메뉴 > 스크립트 작업공간을 선택합니다. 또는 파일 메뉴 > 관리 > 스크립트를 선택합니다.
-
스크립트 패널에서 보려는 스크립트를 이중 클릭합니다.
스크립트 편집 패널의 새로운 탭에서 스크립트가 열립니다.
If 구조 예제
If, Else If, Else 및 End If 스크립트 단계는 스크립트 단계가 수행되는 여부를 제어하는 구조를 정의합니다. 이 제어는 테스트가 가능한 조건이나 부울 계산 결과에 따라 다릅니다.
- 계산 결과가 0이 아닌 수라면 조건이 참으로 평가하여 다음의 스크립트 단계가 수행됩니다.
- 계산 결과가 0이나 숫자로 분석하지 않는 내용이라면 조건이 거짓으로 평가하여 다음의 스크립트 단계가 수행되지 않습니다.
Else If 단계는 추가 부울 테스트를 제공합니다. Else 단계는 모든 조건이 거짓으로 평가하면 대체 단계를 제공합니다.
예제 1
찾기를 수행합니다. 발견된 레코드가 없는 경우 사용자 설정 대화를 표시합니다. 레코드가 발견되는 경우 찾기 세트를 정렬합니다.
찾기 수행 [복원]
If [Get(찾은 개수) = 0]
사용자 설정 대화상자 보기 ["레코드 찾기"; "발견된 레코드가 없습니다."]
Else
레코드 정렬 [복원; 대화상자 사용: 끔]
End If
예제 2
찾기를 수행합니다. 발견된 레코드가 없는 경우 사용자 설정 대화를 표시합니다. 하나의 레코드가 발견되는 경우 청구서 세부 정보 레이아웃으로 이동합니다. 하나 이상의 레코드가 발견되는 경우 청구서 레이아웃으로 이동합니다.
찾기 수행 [복원]
If [Get(찾은 개수) = 0]
사용자 설정 대화상자 보기 ["레코드 찾기"; "발견된 레코드가 없습니다."]
Else If [Get(찾은 개수) = 1]
레이아웃으로 이동 ["청구서 세부 정보"]
Else
레이아웃으로 이동 ["청구서"]
End If
Loop 구조 예제
Loop, Exit Loop If 및 End Loop 스크립트 단계는 스크립트 단계가 반복되도록 활성화하는 구조를 정의합니다. Loop와 End Loop 사이의 스크립트 단계는 레코드/요청/페이지로 이동 또는 포털로 이동 단계에 이를 때까지 Exit Loop If 조건이나 Exit After Last 조건이 계속 실행됩니다.
Exit Loop If 스크립트 단계를 사용하여 평가될 계산을 지정합니다. 계산 결과가 0이 아니면 참으로 평가하고 루프가 끝납니다. 계산 결과가 0이면 거짓으로 평가하고 루프가 계속합니다.
예제 1
고객::직장 전화의 내용을 모든 레코드의 고객::주간 연락처로 복사합니다.
레코드/요청/페이지로 이동 [처음]
Loop [ 지우기: 항상 ]
필드 설정 [고객::주간 연락처; 고객::직장 전화]
레코드/요청/페이지로 이동 [다음 ; 마지막 항목 후 종료: 켬]
End Loop
예제 2
컨테이너 필드에 있는 파일을 내보내는데 레코드를 루프합니다. 레코드에 빈 컨테이너 필드가 있는 경우 루프를 종료합니다.
변수 설정 [$PATH; 값: Get(문서 경로) & 제품::컨테이너]
레코드/요청/페이지로 이동 [처음]
Loop [ 지우기: 항상 ]
Exit Loop If [IsEmpty(제품::컨테이너)]
필드 콘텐츠 내보내기 [제품::컨테이너; "$PATH" ; 폴더
생성: 끔 ]
레코드/요청/페이지로 이동 [다음 ; 마지막 항목 후 종료: 켬]
End Loop
시작 스크립트 예제
시작 스크립트는 사용자의 데이터베이스 보기를 사용자화하거나 데이터베이스가 열려 있을 때 다른 동작을 수행할 수 있습니다. 시작 스크립트는 OnFirstWindowOpen 스크립트 트리거로 실행됩니다. 시작 스크립트 설정에 대한 정보는 파일 옵션 설정하기를 참조하십시오.
예제 1
계정이 전체 접근 권한 범위로 할당되는 경우 관리 레이아웃으로 이동합니다. 그렇지 않으면 데이터 입력 레이아웃으로 이동합니다.
If [Get(계정 권한 범위 이름) = "[전체 접근]"]
레이아웃으로 이동 ["관리"]
Else
레이아웃으로 이동 ["데이터 입력"]
End If
예제 2
어떤 버전의 FileMaker Pro 또는 FileMaker Go로 데이터베이스가 열리는지 확인하고 적절한 고객 레이아웃으로 이동합니다.
If [Get(장비) = 3]
레이아웃으로 이동 ["고객 iPad"]
Else If [Get(장비) = 4]
레이아웃으로 이동 ["고객 iPhone"]
Else
레이아웃으로 이동 ["고객"]
End If
스크립트 및 스크립트 매개 변수 실행 예제
스크립트 수행은 현재 파일이나 다른 FileMaker Pro 파일에서 정의된 스크립트를 수행합니다.
옵션인 스크립트 매개 변수는 텍스트를 스크립트로 전할 수 있습니다. 예를 들어, 스크립트 매개 변수를 사용하여 스크립트가 시작될 때 활성화된 레코드 번호를 저장해서 스크립트 끝에 쉽게 해당 레코드로 반환할 수 있습니다. 또는 동일한 레이아웃의 다른 버튼에서 동일한 스크립트를 호출하여 어떤 버튼이 스크립트를 호출했는지 각 버튼에 대해 다른 스크립트 매개 변수를 사용함으로써 쉽게 결정할 수 있습니다.
매개 변수를 지정할 때 스크립트 내의 매개 변수에 접근하거나 Get(스크립트 매개 변수) 함수를 사용하여 다른 스크립트로 전달할 수 있습니다.
이름 목록 또는 다른 값과 같이 복잡한 매개 변수도 사용될 수 있습니다. 캐리지 리턴으로 구분된 복잡한 매개 변수가 LeftValues 함수, MiddleValues 함수 및 RightValues 함수를 사용하여 분석될 수 있습니다. 이들 함수는 캐리지 리턴으로 구분된 목록에서 시작, 중간 및 끝 값을 반환합니다. 다른 문자로 구분된 복잡한 매개 변수가 Left 함수, Middle 함수 및 Right 함수 같이 함수를 사용하여 텍스트로 구문 분석될 수 있습니다.
예제 1
매개 변수 없이 "청구서 리포트 프린트" 스크립트를 실행합니다.
레이아웃으로 이동 ["청구서 리포트"]
스크립트 수행 [지정됨: 목록에서; "청구서 리포트 프린트" ;
매개 변수: ]
예제 2
필드, 고객 이름을 매개 변수로 사용합니다. 현재 고객의 청구서가 청구서 리포트 레이아웃이 있는 새로운 윈도우로 반환됩니다.
주 스크립트: 현재 고객 청구서
일치하는 레코드 찾기 [대치; 청구서::고객 ID]
#아래 정의된 "고객 청구서 보기" 하위 스크립트 호출
스크립트 수행 [ 지정됨: 목록에서: "고객 청구서 보기"; 매개 변수: 청구서::고객 이름]
하위 스크립트: 고객 청구서 보기
새로운 윈도우 [이름: "고객: " & Get(스크립트 매개 변수); 스타일: 문서]
레이아웃으로 이동 ["청구서 리포트"]
레코드 정렬 [복원; 대화상자 사용: 끔]
참고
- 스크립트 매개 변수는 스크립트가 실행 시간에만 존재합니다. 스크립트가 수행될 때마다 스크립트 매개 변수가 재설정됩니다. 파일이 열려 있는 동안 스크립트 매개 변수를 지속하려는 경우 스크립트 매개 변수로 전역 변수를 사용할 수 있습니다.
- Get(스크립트 매개 변수) 함수를 사용하여 다른 스크립트로 분명히 전달되지 않으면 스크립트 매개 변수는 상위 스크립트 내에만 존재합니다.
- 스크립트 매개 변수는 스크립트 내에서 사용될 수 있고(수정되지는 않음) Get(스크립트 매개 변수) 함수를 사용하여 하위 스크립트에 대한 매개 변수로서 하위 스크립트로 전달될 수 있습니다. 하위 스크립트가 스크립트 수행을 사용하여 호출될 때마다 다른 매개 변수를 지정할 수도 있습니다. 하위 스크립트로 전달된 매개 변수를 변경해도 상위 스크립트의 Get(스크립트 매개 변수)에서 반환된 매개 변수의 값을 수정하지 않습니다.