GetFieldsOnLayout
레이아웃의 필드 목록을 JSON 데이터로 반환합니다.
포맷
GetFieldsOnLayout( layoutName )
매개 변수
layoutName - 레이아웃의 이름을 나타내는 텍스트 표현식입니다. layoutName이 빈 문자열(")인 경우, 현재 레이아웃이 사용됩니다.
반환되는 데이터 유형
텍스트
다음 버전에서 시작됨
22.0
설명
이 함수는 찾기에 액세스할 수 있는 지정된 레이아웃의 필드에 대한 정보를 포함하는 JSON 대상체를 반환합니다.
다음 기준을 충족하는 필드는 제외됩니다.
-
필드 대상체가 레이아웃 영역 밖에 있습니다(레이아웃에서 필드 배치 및 제거하기 참조).
-
대상체 숨기기 조건이 충족되고 찾기에 적용 모드가 선택됩니다(레이아웃 대상체 가리기 또는 보기 참조).
-
필드 항목의 경우 찾기 모드가 선택 해제됩니다(필드에 입력 허용 또는 방지하기 참조).
-
빠른 찾기에 대한 포함 필드가 선택 해제됩니다(빠른 찾기 구성하기 참조).
-
현재 계정의 권한 세트에는 읽기 액세스 권한이 없습니다(레코드 접근 권한 편집하기).
-
필드는 요약, 글로벌 또는 컨테이너 필드입니다(요약 필드 정의하기, 전역 필드(전역 저장 장치로 정의된 필드) 정의하기 및 컨테이너 필드 정보 참조).
반환된 JSON 대상체의 구조는 다음과 같습니다.
{
"layout_name": "LayoutName",
"fields": {
"TableOccurrence::FieldName1": {
"type": "string",
"description": "Field comment (optional)"
},
"TableOccurrence::FieldName2": {
"type": "number"
}
}
}
-
layout_name키에는 레이아웃의 이름이 포함되어 있습니다. -
필드대상체에는 각 접근 가능한 필드에 대한 키-값 쌍이 포함되어 있습니다. -
각 필드의 키는 정규화된 이름입니다(예: TableOccurrence::FieldName).
-
각 필드의 값은
type키가 있는 대상체입니다(필드의 데이터 유형이숫자인 경우 number; 그렇지 않은 경우string). -
데이터베이스 관리 대화 상자에서 필드에 주석(고급 필드 옵션 정의하기 참조) 또는 설명(필드 정의 및 변경하기 참조)이 정의된 경우 선택적
description키가 포함됩니다. 필드에 두 가지가 모두 있는 경우, 주석은description키의 값으로 사용됩니다. 필드에 설명만 있는 경우, 해당 설명이 사용됩니다. 두 경우 중 하나가[LLM]로 시작하면, FileMaker 26.0.1 이전 버전에서 사용된[LLM]태그 규칙과의 하위 호환성을 위해[LLM]접두사는 제거됩니다.
참고
-
이 함수는 동일한 기준을 사용하여 찾기로 액세스할 수 있는 필드 및 자연어로 찾기 수행 스크립트 단계를 통해 반환되는 필드 정보를 결정합니다.
예제 1
제품 레이아웃에서 찾기에 액세스할 수 있는 필드를 설명하는 JSON 대상체를 반환합니다.
JSONFormatElements ( GetFieldsOnLayout ( "Products" ) )
제품 레이아웃에 다음 필드가 있는 경우:
| 필드 이름 | 주석 | 설명 |
|---|---|---|
|
CreationDate |
제품 생성일 |
|
|
Price |
제품의 가격(USD) |
|
|
ProductID |
제품을 고유하게 식별하는 기본 키 |
제품 ID |
|
ProductName |
|
[LLM] 제품의 자세한 이름 |
|
Status |
|
|
|
g_UserFavorites |
현재 사용자가 즐겨찾는 제품을 포함하는 글로벌 필드 |
함수는 다음을 반환합니다.
{
"fields" :
{
"Products::CreationDate" :
{
"description" : "Creation date for product",
"type" : "string"
},
"Products::Price" :
{
"description" : "Price of the product in USD",
"type" : "number"
},
"Products::ProductID" :
{
"description" : "Primary key that uniquely identifies a product",
"type" : "number"
},
"Products::ProductName" :
{
"description" : "Descriptive name of the product",
"type" : "string"
},
"Products::Status" :
{
"type" : "string"
}
},
"layout_name" : "Products"
}
다음 사항을 확인하십시오.
-
ProductID:
description키에는 주석이 포함되어 있습니다(설명은 무시됩니다). -
ProductName:
description키에는[LLM]접두사가 제거된 주석이 포함되어 있습니다(주석이 존재하지 않음). -
상태:
description키가 표시되지 않습니다(주석이나 설명이 존재하지 않음). -
g_UserFavorites: 필드가 완전히 생략되었습니다(전역 필드는 찾기에 접근할 수 없음).
예제 2
현재 레이아웃의 모든 필드 목록과 찾기로 액세스할 수 있는 현재 레이아웃의 모든 필드 목록을 반환합니다. 이는 알지 못했던 필드가 찾기에 액세스할 수 없음을 나타낼 수 있습니다.
Let (
[
layoutFields = FieldNames ( Get ( FileName ) ; Get ( LayoutName ) ) ;
findFields = JSONListKeys ( GetFieldsOnLayout ( Get ( LayoutName ) ) ; "fields" ) ;
sortedLayoutFields = SortValues ( layoutFields ; 1 ) ;
sortedFindFields = SortValues ( findFields ; 1 ) ;
$$result = "All fields on the current layout:" & ¶ & sortedLayoutFields & ¶ &
"Of these, the fields accessible to a find are:" & ¶ & sortedFindFields
] ;
$$result
)
제품 레이아웃에 대한 $$result에 저장된 가능한 출력:
현재 레이아웃의 모든 필드:
CreationDate
Photo
Price
ProductID
ProductName
Status
찾기에 액세스할 수 있는 필드:
Products::CreationDate
Products::Price
Products::ProductID
Products::ProductName
Products::Status