시각화를 만들면 할당된 데이터 필드에 따라 시각적 개체가 렌더링됩니다. 이 문서에서는 Power BI 보고서 작성 API를 사용하여 데이터 필드와 상호 작용하고 데이터 역할에 할당하는 방법을 보여 줍니다. 시각적 개체에 어떤 데이터 역할이 있는지 확인하려면 getCapabilities 메서드를 사용합니다.
데이터 필드 추가
시각적 데이터 역할에 데이터 필드를 추가하려면 시각적 개체의 addDataField 메서드를 호출합니다.
addDataField(dataRole: string, dataField: models.IBaseTarget, index?: number): Promise<models.IError>
이 메서드에는 다음과 같은 변수가 있습니다.
-
dataRole- 데이터 필드를 할당해야 하는 데이터 역할의 이름입니다.dataRole매개 변수는 데이터 역할name속성과 동일합니다. 사용 가능한 데이터 역할 및 이름을 검색하려면getCapabilities메서드를 사용합니다. -
dataField- 데이터 역할에 추가할 데이터 필드입니다. 데이터 필드는 집계가 있는 열, 집계, 측정값, 계층 구조 또는 계층 구조가 있는 열일 수 있는 대상 개체입니다. 대상에 대한 자세한 내용은 대상을 사용하여수행할 데이터 필드를 선택합니다. -
index(선택 사항) - 데이터 필드를 추가할 인덱스입니다. 기본 동작은 필드를 마지막으로 추가하는 것입니다.
예를 들어:
const dataField = {
$schema: "http://powerbi.com/product/schema#column",
table: "Store",
column: "Name"
};
await visual.addDataField('Category', dataField);
데이터 필드 가져오기
데이터 역할에 정의된 데이터 필드 목록을 얻으려면 시각적 개체의 getDataFields 메서드를 호출합니다. 목록에는 숨겨진 필드와 표시되는 필드가 모두 포함됩니다.
getDataFields(dataRole: string): Promise<models.IBaseTarget>
이 메서드에는 데이터 필드를 검색할 데이터 역할의 이름인 dataRole 변수가 있습니다.
예를 들어:
let dataField = await visual.getDataFields('Category');
데이터 필드 제거
데이터 역할에 적용되는 데이터 필드를 제거하려면 시각적 개체의 removeDataField 메서드를 호출합니다.
removeDataField(dataRole: string, index: number): Promise<models.IError>
이 메서드에는 다음과 같은 매개 변수가 있습니다.
-
dataRole- 데이터 필드가 연결된 대상 데이터 역할의 이름입니다. -
index- 삭제할 데이터 필드의 인덱스입니다.
예를 들어:
await visual.removeDataField('Category', 2);
데이터 필드의 인덱스 가져오기 위해 getDataFields 결과 배열에서 대상의 인덱스로 가져올 수 있습니다.
데이터 필드의 표시 유형 설정
데이터 필드의 표시 유형을 제어하려면 시각적 개체의 setFieldHidden 메서드를 사용합니다. 집계된 필드, 측정값 및 시각적 계산만 숨기거나 표시할 수 있습니다. 이 작업은 시각적 계산 편집 모드에서 필드 표시 유형을 토글하는 것과 같습니다.
setFieldHidden(dataRole: string, index: number, isHidden: boolean): Promise<models.IError>
이 메서드에는 다음과 같은 매개 변수가 있습니다.
-
dataRole- 데이터 필드가 연결된 대상 데이터 역할의 이름입니다. -
index- 숨기거나 숨기기 취소할 데이터 필드의 인덱스입니다. -
isHidden- 숨겨야 할 위치를 결정하는 부울 값
예를 들어:
await visual.setFieldHidden('Values', 0, /*isHidden*/ true);
데이터 필드의 형식 문자열 설정
특정 필드에서 표시된 데이터의 서식을 지정하려면 시각적 개체의 메서드를 setFieldFormatString 호출합니다.
setFieldFormatString(dataRole: string, index: number, formatString: string): Promise<models.IError>
이 메서드에는 다음과 같은 매개 변수가 있습니다.
-
dataRole- 데이터 필드가 연결된 대상 데이터 역할의 이름입니다. -
index- 형식 문자열을 설정할 데이터 필드의 인덱스입니다. -
formatString- .NET 형식 문자열이 필요합니다.
예를 들어 필드의 모든 값이 처음에 $를 갖도록 하려면 다음을 수행합니다.
await visual.setFieldFormatString('Values', 0, /*formatString*/ "$0.00");
데이터 필드의 형식 문자열 가져오기
필드의 형식 문자열을 검색하려면 시각적 개체의 메서드를 getFieldFormatString 호출합니다.
getFieldFormatString(dataRole: string, index: number): Promise<string>
이 메서드에는 다음과 같은 매개 변수가 있습니다.
-
dataRole- 데이터 필드가 연결된 대상 데이터 역할의 이름입니다. -
index- 형식 문자열을 가져올 데이터 필드의 인덱스입니다.
let formatString = await visual.getFieldFormatString('Values', 0);
데이터 필드 이름 가져오기
시각적 개체의 모든 필드에는 표시 이름에서 파생된 고유한 이름이 있습니다. 이 고유 식별자는 시각적 계산을 만들 때 DAX 식 내의 필드를 참조하는 데 사용됩니다. 이 고유한 이름을 검색하려면 시각적 개체의 메서드를 getDataFieldName 호출합니다.
getDataFieldName(dataRole: string, index: number): Promise<string>
이 메서드에는 다음과 같은 매개 변수가 있습니다.
-
dataRole- 데이터 필드가 연결된 대상 데이터 역할의 이름입니다. -
index- 필드 이름을 가져올 데이터 필드의 인덱스입니다.
let dataFieldName = await visual.getDataFieldName('Values', 0);
let visualCalcDax = `RUNNINGSUM([${dataFieldName}])`;
관련 콘텐츠
- 보고서 시각적 개체 포함
- 시각적 개체 만들기
- 시각적 개체의 기능 가져오기