Поделиться через


Настройка полей данных

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