Compartilhar via


Clonar um visual

A API do Visual Clone clona um visual específico na página ativa de um relatório do Power BI. Você pode clonar um visual de qualquer página do relatório na página ativa. A clonagem de um visual permite que você faça cópias com layouts ou filtros diferentes do visual original.

Como clonar um visual

A classe Do Cliente do Power BI, define o método como:

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

Na interface ICloneVisualRequest :

  • IFilter descreve os filtros a serem aplicados ao visual clonado.
  • IVisualLayout define o tamanho e o local do visual clonado.
  • A propriedade autoFocus determina se o visual clonado deve se concentrar após a criação.

A interface ICloneVisualResponse retorna o novo nome visual clonado ou o identificador exclusivo.

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 obter uma lista de todos os visuais em um relatório, use o método getVisuals da classe Page.

Exemplos

O primeiro exemplo de código clona um visual com configurações padrão. A posição e o tamanho do novo visual representam um esforço melhor para colocar um visual em um espaço vazio na tela. Para especificar posição e tamanho, use o segundo exemplo.

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

O segundo exemplo clona em um novo visual com um layout específico e não se concentra no novo visual após a criação.

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

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

O terceiro exemplo de código clona em um novo visual com um layout específico e novos 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);

Considerações e limitações

Você só poderá clonar um visual se o relatório estiver totalmente renderizado, portanto, aguarde o evento rendered antes de chamar a API visual clone.