무형식 개체 데이터 형식
형식화되지 않은 개체 는 복잡하거나 간단한 모든 데이터 구조를 보관할 수 있는 Power Fx 데이터 유형입니다. 직접 사용할 수 없으며 데이터 형식으로의 명시적 변환이 필요합니다. 무형식 개체의 레코드에 있는 필드는 점 표기법을 사용하여 액세스할 수 있으며 필드의 존재는 런타임 시에만 확인됩니다.
형식화되지 않은 개체 는 유형이 지정되지 않은 특정 공급자의 반환 유형입니다. 현재 ParseJSON() 함수만 무형식 개체를 반환합니다.
간단한 형식
무형식 개체 형식의 변수 값은 직접 사용할 수 없습니다. 항상 해당 형식 생성자를 사용하여 올바르게 입력해야 합니다.
다음 예는 UOValue
라는 무형식 개체 변수의 값을 변환합니다.
Text(UOValue)
Value(UOValue)
다음 표에는 무형식 개체를 해당 데이터 형식으로 변환하는 데이터 형식 및 해당 함수가 나와 있습니다.
데이터 유형 | 함수 | Description |
---|---|---|
부울 | 부울() | 형식화되지 않은 개체를 부울로 변환할 때 기본 값은 부울 또는 자동으로 변환할 수 있는 유형(예: 문자열 "true")을 나타내야 합니다. |
색상 | ColorValue() 또는 RGBA() | 색상은 CSS(Cascading Style Sheet) 색상 정의 표기법에서 문자열로 또는 개별 RGBA 구성 요소로 표시될 수 있습니다. 무형식 개체는 ColorValue() 함수를 사용하여 CSS(Cascading Style Sheet) 색상 정의 문자열에서 직접 변환하거나 개별 RGBA 숫자를 RGBA() 함수를 사용하여 색상으로 변환합니다. |
통화, 숫자 | 값() | 형식화되지 않은 개체를 숫자로 변환할 때 기본 값은 숫자 또는 자동으로 변환할 수 있는 유형(예: 문자열 "123.456")을 나타내야 합니다. |
날짜, 날짜/시간, 시간 | DateValue(), TimeValue() 또는 DateTimeValue() | 날짜, 시간 및 날짜/시간은 ISO 8601 형식으로 표시될 때 무형식 개체에서 해당 형식으로 직접 변환될 수 있습니다. 다른 형식은 먼저 Text() 함수를 사용하여 텍스트로 변환한 다음 DateValue(), TimeValue() 또는 DateTimeValue() 함수로 전달되어야 하며, 이 함수는 기본적으로 날짜와 시간을 해석하기 위해 현재 사용자 설정의 언어를 사용합니다. |
GUID | GUID() | 형식화되지 않은 개체는 기본 개체가 GUID를 나타내거나 문자열을 나타내는 경우 GUID로 직접 변환될 수 있습니다. |
하이퍼 링크, 이미지, 미디어 | 텍스트() | 이러한 데이터 형식은 텍스트 데이터 형식이며 텍스트로 변환하여 Power Fx에서 사용할 수 있습니다. |
선택, 두 가지 옵션 | Switch() 또는 If() | 선택 항목 과 두 가지 옵션 은 Power Fx에 지역화된 문자열로 표시됩니다. 선택 사항 은 숫자와 두 가지 옵션 (부울 형식)으로 지원됩니다. 부울, 숫자 또는 문자열에서 선택 또는 두 가지 옵션으로의 직접적인 변환은 없지만 Switch() 또는 If() 함수를 부울, 텍스트 또는 숫자 값에 사용하여 선택 또는 두 가지 옵션 값을 올바르게 할당할 수 있습니다. |
녹음 | 해당 없음 | 무형식 개체에서 레코드 구조로의 직접적인 변환은 없지만 무형식 개체에서 개별 필드를 검색하여 새 레코드를 만들 수 있습니다. |
레코드 참조 | 해당 없음 | 레코드 참조는 데이터 원본에 고유하며 무형식 개체에 의미 있는 표현이 없습니다. |
테이블 | 테이블() 및 ForAll() | 무형식 개체는 테이블로 변환할 수 있는 배열을 나타낼 수 있습니다. 이러한 개체는 레코드 배열이거나 사실상 단일 열 테이블인 값 배열일 수 있습니다. ForAll() 을 사용하면 완전히 형식화된 레코드가 있는 테이블을 만들 수 있습니다. 자세한 내용은 이 문서 아래에 있는 예시를 검토하세요. |
문자 | 텍스트() | 텍스트를 직접 변환할 수 있습니다. 무형식 개체가 숫자를 나타내는 경우 텍스트로 변환하기 전에 먼저 무형식 개체를 Value()를 사용하여 숫자로 변환해야 합니다. . |
레코드 종류
레코드에 사용되는 일반 점 표기법을 사용하여 무형식 개체 레코드를 나타내는 변수의 필드에 액세스할 수 있습니다. 그러나 필드의 존재는 런타임까지 확인되지 않습니다. 결과적으로 IntelliSense도 사용할 수 없습니다. 필드가 존재하지 않거나 기본 null 값이 있는 경우 해당 필드에 액세스하면 Blank() 값이 생성됩니다.
레코드의 각 필드도 무형식 개체 형식이며 올바르게 입력해야 합니다. 필드는 단순 형식의 형식이 지정되지 않은 레코드일 수 있습니다. 레코드인 경우 점 표기법을 연결할 수 있습니다. 체인에 필드가 없으면 Blank()가 반환됩니다.
다음 예는 UORecord
라는 무형식 개체 변수의 필드를 사용합니다.
Text(UORecord.StringField)
Value(UORecord.Field.ChildField)
필드 이름이 잘못된 식별자 이름으로 구성된 경우(예: 필드 이름이 숫자로 시작하거나 하이픈과 같은 잘못된 문자가 포함된 경우) 필드 이름을 작은 따옴표로 묶을 수 있습니다.
untyped.'01'
untyped.'my-field'
배열
무형식 개체 변수에는 배열이 포함될 수 있습니다. 배열이 레코드 배열 또는 단순 형식 배열일 수 있지만 무형식 개체 배열을 Table() 함수를 사용하여 테이블로 변환 항상 무형식 개체의 단일 열 테이블이 생성됩니다. ForAll() 및 Index()와 같은 함수는 먼저 Table()을 만들 필요가 없으므로 단일 열 Value
필드를 사용할 필요가 없습니다.
예를 들어 숫자 값([1, 2, 3]
)을 포함하는 무형식 개체 배열에서 두 번째 숫자를 가져오려면 다음 수식을 사용하여 테이블의 두 번째 행을 검색하고 열을 숫자로 변환할 수 있습니다.
Value( Index( UOArray, 2 ) )
무형식 개체가 먼저 Table()로 변환된 경우 결과 단일 열 테이블의 두 번째 행은 무형식 개체를 포함하는 Value
열입니다.
Value( Index( Table( UOArray ), 2 ).Value )
Field
라는 텍스트 열이 있는 레코드 배열의 경우 동일한 논리가 적용됩니다. 무형식 개체에 직접 액세스하거나 Table() 함수를 사용하면 무형식 개체의 단일 열 테이블이 생성됩니다.
Field
열은 Index() 함수에 의해 반환된 무형식 개체에서 직접 액세스할 수 있습니다.
Text( Index( UORecordArray, 2 ).Field )
Table() 함수를 사용할 때 먼저 단일 열 Value
열을 검색하여 무형식 개체를 가져온 다음 Field
열에 액세스합니다.
Text( Index( Table( UORecordArray ), 2 ).Value.Field )
레코드 배열을 유형이 지정된 테이블로 변환하려면 ForAll() 함수를 사용하고 각 개별 필드를 변환할 수 있습니다.
ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )
무형식 개체가 먼저 테이블로 변환되면 다시 무형식 개체의 결과 단일 열 테이블에서 필드를 가져오기 위해 Value
열을 사용해야 합니다.
ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )