Compartir a través de


Clonación de un objeto visual

Clone Visual API clone un objeto visual específico en la página activa de un informe de Power BI. Puede clonar un objeto visual desde cualquier página del informe en la página activa. La clonación de un objeto visual permite realizar copias con diferentes diseños o filtros del objeto visual original.

Cómo clonar un objeto visual

El cliente de Power BI clase VisualDescriptor define el método clone como:

clone(request: models.ICloneVisualRequest = {}): Promise<ICloneVisualResponse>

En la interfaz ICloneVisualRequest:

  • IFilter describe los filtros que se aplicarán al objeto visual clonado.
  • IVisualLayout define el tamaño y la ubicación del objeto visual clonado.
  • La propiedad autoFocus determina si se debe centrar en el objeto visual clonado después de la creación.

La interfaz ICloneVisualResponse devuelve el nuevo nombre visual clonado o identificador único.

interface ICloneVisualRequest {
  // The filters to apply to the new visual. Default: source visual filters.
  filters?: IFilter[];

  // The layout to apply to the new visual.
  // Default: a best effort to put the new visual in an empty space on the canvas.
  layout?: IVisualLayout;

  // Focus on the new visual after creation.
  // If autoFocus is set to false, no scrolling will occur.
  // Default: true.
  autoFocus?: boolean;
}

interface ICloneVisualResponse {
  // New visual name.
  visualName: string;
}

Para obtener una lista de todos los objetos visuales de un informe, use el método getVisuals de la clase Page.

Ejemplos

El primer ejemplo de código clona un objeto visual con la configuración predeterminada. La posición y el tamaño del nuevo objeto visual representan un mejor esfuerzo para colocar un objeto visual en un espacio vacío en el lienzo. Para especificar la posición y el tamaño, use el segundo ejemplo.

    let clonedVisual = await visual.clone();
    console.log(clonedVisual.name);

En el segundo ejemplo se clona en un nuevo objeto visual con un diseño específico y no se centra en el nuevo objeto visual después de la creación.

    let cloneRequest = {
        layout: { 
            height: 300, 
            width: 600,
            x: 150, 
            y: 250 
        },
        autoFocus: false
    };

    let clonedVisual = await visual.clone(cloneRequest);
    console.log(clonedVisual.name);

El tercer ejemplo de código clona en un nuevo objeto visual con un diseño específico y nuevos filtros.

    const basicFilter = {
      $schema: "http://powerbi.com/product/schema#basic",
      target: {
        table: "Store",
        column: "Count"
      },
      operator: "In",
      values: [1, 2, 3, 4],
      filterType: models.FilterType.BasicFilter
    };

    let cloneRequest = {
        layout: { x: 150, y: 250 },
        filters: [basicFilter]
    };

    let clonedVisual = await visual.clone(cloneRequest);
    console.log(clonedVisual.name);

Consideraciones y limitaciones

Solo puede clonar un objeto visual si el informe está totalmente representado, por lo que debe esperar al evento rendered antes de llamar a clone Visual API.