Compartir a través de


Configurar campos de datos

Al crear una visualización, el objeto visual se representa según los campos de datos asignados. En este artículo se muestra cómo usar las API de creación de informes de Power BI para interactuar con campos de datos y asignarlas a roles de datos. Para determinar qué roles de datos tiene un objeto visual, use el método getCapabilities.

Agregar un campo de datos

Para agregar un campo de datos a un rol de datos visual, llame al método addDataField del objeto visual.

addDataField(dataRole: string, dataField: models.IBaseTarget, index?: number): Promise<models.IError>

Este método tiene las siguientes variables:

  • dataRole: el nombre del rol de datos al que se debe asignar el campo de datos. El parámetro dataRole es equivalente al rol de datos name propiedad. Para recuperar los nombres y roles de datos disponibles, use el método getCapabilities.
  • dataField: campo de datos que se va a agregar al rol de datos. El campo de datos es un objeto de destino, que puede ser una columna, columna con agregación, medida, jerarquía o jerarquía con agregación. Para obtener más información sobre los destinos, consulte Uso de destinos para seleccionar qué campo de datos actuar en.
  • index (opcional): índice en el que se debe agregar el campo de datos. El comportamiento predeterminado es para que el campo se agregue en último lugar.

Por ejemplo:

const dataField = {
  $schema: "http://powerbi.com/product/schema#column",
  table: "Store",
  column: "Name"
};

await visual.addDataField('Category', dataField);

Obtención de campos de datos

Para obtener una lista de los campos de datos definidos en un rol de datos, llame al método getDataFields del objeto visual. La lista contendrá campos ocultos y visibles.

getDataFields(dataRole: string): Promise<models.IBaseTarget>

Este método tiene la variable dataRole, que es el nombre del rol de datos del que se van a recuperar los campos de datos.

Por ejemplo:

let dataField = await visual.getDataFields('Category');

Eliminación de campos de datos

Para quitar un campo de datos que se aplica en un rol de datos, llame al método removeDataField del objeto visual.

removeDataField(dataRole: string, index: number): Promise<models.IError>

Este método tiene los parámetros siguientes:

  • dataRole: el nombre del rol de datos de destino al que está asociado el campo de datos.
  • index: índice del campo de datos que se va a eliminar.

Por ejemplo:

await visual.removeDataField('Category', 2);

Para obtener el índice del campo de datos, puede usar el índice del destino en la matriz de resultados de getDataFields.

Establecer la visibilidad de un campo de datos

Para controlar la visibilidad de los campos de datos, use el setFieldHidden método en el objeto visual. Solo se pueden ocultar o mostrar campos agregados, medidas y cálculos visuales. Esta acción equivale a alternar la visibilidad del campo mientras se encuentra en modo de edición de cálculo visual.

setFieldHidden(dataRole: string, index: number, isHidden: boolean): Promise<models.IError>

Este método tiene los parámetros siguientes:

  • dataRole: el nombre del rol de datos de destino al que está asociado el campo de datos.
  • index - Índice del campo de datos que se va a ocultar o mostrar.
  • isHidden - Valor booleano para determinar dónde debe estar oculto o no

Por ejemplo:

await visual.setFieldHidden('Values', 0, /*isHidden*/ true);

Establecer la cadena de formato de un campo de datos

Para dar formato a los datos mostrados desde un campo determinado, llame al setFieldFormatString método del objeto visual.

setFieldFormatString(dataRole: string, index: number, formatString: string): Promise<models.IError>

Este método tiene los parámetros siguientes:

  • dataRole: el nombre del rol de datos de destino al que está asociado el campo de datos.
  • index : índice del campo de datos para establecer la cadena de formato.
  • formatString - Se espera una cadena de formato de .NET.

Por ejemplo: si desea que todos los valores del campo tengan $ al principio, haga lo siguiente:

await visual.setFieldFormatString('Values', 0, /*formatString*/ "$0.00");

Obtener la cadena de formato de un campo de datos

Para recuperar la cadena de formato de un campo, llame al getFieldFormatString método del objeto visual.

getFieldFormatString(dataRole: string, index: number): Promise<string>

Este método tiene los parámetros siguientes:

  • dataRole: el nombre del rol de datos de destino al que está asociado el campo de datos.
  • index : índice del campo de datos para obtener la cadena de formato.
let formatString = await visual.getFieldFormatString('Values', 0);

Obtener el nombre de un campo de datos

Cada campo de un objeto visual tiene un nombre único derivado de su nombre para mostrar. Este identificador único se usa para hacer referencia al campo dentro de expresiones DAX al crear cálculos visuales. Para recuperar este nombre único, llame al getDataFieldName método del objeto visual.

getDataFieldName(dataRole: string, index: number): Promise<string>

Este método tiene los parámetros siguientes:

  • dataRole: el nombre del rol de datos de destino al que está asociado el campo de datos.
  • index : índice del campo de datos para obtener el nombre del campo.
let dataFieldName = await visual.getDataFieldName('Values', 0);
let visualCalcDax = `RUNNINGSUM([${dataFieldName}])`;