Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
При создании визуализации визуальный элемент отображается в соответствии с назначенными полями данных. В этой статье показано, как использовать API создания отчетов Power BI для взаимодействия с полями данных и назначения им ролей данных. Чтобы определить, какие роли данных имеет визуальный элемент, используйте метод 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}])`;