API de objeto visual

Todos los objetos visuales empiezan con una clase que implementa la interfaz IVisual. Puede asignar cualquier nombre a la clase siempre que haya exactamente una clase que implemente la interfaz IVisual.

Nota

El nombre de la clase visual debe ser el mismo que visualClassName en el archivo pbiviz.json.

La clase del objeto visual debe implementar los siguientes métodos, como se muestra en este ejemplo:

  • constructor: un constructor estándar que inicializa el estado del objeto visual.
  • update: actualiza los datos del objeto visual.
  • getFormattingModel, devuelve un modelo de formato que rellena el panel de propiedades (opciones de formato) donde puede modificar las propiedades según sea necesario
  • destroy: un destructor estándar para la limpieza.
class MyVisual implements IVisual {
    
    constructor(options: VisualConstructorOptions) {
        //one time setup code goes here (called once)
    }
    
    public update(options: VisualUpdateOptions): void {
        //code to update your visual goes here (called on all view or data changes)
    }

    public getFormattingModel(): FormattingModel {
        // returns modern format pane formatting model that contain all format pane components and properties (called on opening format and analytics pane or on editing format properties)
    }
    
    public destroy(): void {
        //one time cleanup code goes here (called once)
    }
}

constructor

Se llama a constructor de la clase del objeto visual cuando se crea una instancia del objeto visual. Se puede usar para cualquier operación de configuración que el objeto visual necesite.

constructor(options: VisualConstructorOptions)

VisualConstructorOptions

Estas interfaces se actualizan con cada nueva versión de API. Para obtener el formato de interfaz más actualizado, vaya a nuestro repositorio de GitHub.

En la lista siguiente se describen algunas de las propiedades de la interfaz de VisualConstructorOptions:

  • element: HTMLElement: referencia al elemento DOM que contiene el objeto visual.

  • host: IVisualHost: una colección de propiedades y servicios que se pueden usar para interactuar con el host del objeto visual (Power BI).

    IVisualHost contiene los servicios siguientes:

    • createSelectionIdBuilder: genera y almacena los metadatos de los elementos seleccionables en el objeto visual.
    • createSelectionManager: crea el puente de comunicación que se usa para notificar al host del objeto visual los cambios en el estado de selección (vea API de selección).
    • hostCapabilities
    • refreshHostData
    • downloadService: devuelve información ampliada sobre los resultados de la descarga.
    • eventService: devuelve información sobre los eventos de representación.
    • hostEnv
    • displayWarningIcon: devuelve un mensaje de error o de advertencia.
    • licenseManager: devuelve información de licencia.
    • createLocalizationManager: genera un administrador para ayudar con la localización.
    • applyJsonFilter: aplica tipos de filtros específicos. Consulte Filter API.
    • applyCustomSort: admite opciones de ordenación personalizadas.
    • acquireAADTokenService: devuelve información de autenticación de Microsoft Entra ID.
    • webAccessService: devuelve el estado del permiso para acceder a recursos remotos.
    • openModalDialog: devuelve un cuadro de diálogo.
    • persistProperties: permite a los usuarios crear una configuración persistente y guardarla junto con la definición del objeto visual, de modo que esté disponible en la recarga siguiente.
    • eventService: devuelve un servicio de eventos para admitir eventos Representar.
    • storageService: devuelve un servicio para ayudar a usar el almacenamiento local en el objeto visual.
    • storageV2Service: devuelve un servicio para ayudar a usar la versión 2 del almacenamiento local en el objeto visual.
    • tooltipService: devuelve un servicio de información sobre herramientas para ayudarle a usar información sobre herramientas en el objeto visual.
    • telemetry
    • drill
    • launchUrl: ayuda a lanzar la dirección URL en la pestaña siguiente.
    • authenticationService: devuelve un token de Microsoft Entra ID.
    • locale: devuelve una cadena de configuración regional (consulte Localización).
    • instanceId: devuelve una cadena para identificar la instancia del objeto visual actual.
    • colorPalette: devuelve el colorPalette que se necesita para aplicar colores a los datos.
    • fetchMoreData: admite el uso de más datos que el límite estándar (1000 filas). Consulte Captura de más datos.
    • switchFocusModeState: ayuda a cambiar el estado del modo de enfoque.

update

Todos los objetos visuales deben implementar un método public update al que se llama cada vez que hay un cambio en los datos o en el entorno de host.

public update(options: VisualUpdateOptions): void

VisualUpdateOptions

  • viewport: IViewport: dimensiones de la ventanilla en la que se debe representar el objeto visual.
  • dataViews: DataView[]: objeto de vista de datos que contiene todos los datos necesarios para representar el objeto visual (generalmente, el objeto visual usa la propiedad de categoría en DataView).
  • type: VisualUpdateType: marcas que indican los tipos de datos que se actualizan (Data | Resize | ViewMode | Style | ResizeEnd).
  • viewMode: ViewMode: marcas que indican el modo de vista del objeto visual (View | Edit | InFocusEdit).
  • editMode: EditMode: marca que indica el modo de edición del objeto visual (Default | Advanced) (si el objeto visual admite AdvancedEditMode, debe representar sus controles de interfaz de usuario avanzados solo cuando editMode está establecido en Advanced; vea AdvancedEditMode).
  • operationKind?: VisualDataChangeOperationKind: marca que indica el tipo de cambio de datos (Create | Append).
  • jsonFilters?: IFilter[]: colección de filtros json aplicados.
  • isInFocus?: boolean: marca para indicar si el objeto visual está en modo de enfoque o no.

getFormattingModel (opcional)

Se llama a este método una vez cada vez que se abre el panel de propiedades o el usuario edita cualquiera de las propiedades del panel. Devuelve FormattingModel con toda la información sobre el diseño del panel de propiedades, la jerarquía, las propiedades y los últimos valores de formato.

getFormattingModel(): visuals.FormattingModel;

destroy (opcional)

Se llama a la función destroy cuando el objeto visual se descarga y se puede usar para realizar tareas de limpieza, como quitar clientes de escucha de eventos.

public destroy(): void

Sugerencia

Por lo general, Power BI no llama a destroy porque es más rápido quitar todo el IFrame que contiene el objeto visual.