Klonování vizuálu

Klonování rozhraní API vizuálu naklonuje konkrétní vizuál na aktivní stránku sestavy Power BI. Vizuál můžete naklonovat z libovolné stránky v sestavě na aktivní stránku. Klonování vizuálu umožňuje vytvářet kopie s různými rozloženími nebo filtry z původního vizuálu.

Klonování vizuálu

Klient Power BI VisualDescriptor třída definuje clone metodu jako:

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

V ICloneVisualRequest rozhraní:

  • IFilter popisuje filtry, které se mají použít u naklonovaného vizuálu.
  • IVisualLayout definuje velikost a umístění klonovaného vizuálu.
  • Vlastnost autoFocus určuje, zda se má po vytvoření zaměřit na klonovaný vizuál.

Rozhraní ICloneVisualResponse vrátí nový klonovaný název vizuálu nebo jedinečný identifikátor.

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;
}

Pokud chcete získat seznam všech vizuálů v sestavě, použijte metodu getVisuals třídy Page.

Příklady

První příklad kódu naklonuje vizuál s výchozím nastavením. Pozice a velikost nového vizuálu představují nejlepší úsilí při vložení vizuálu do prázdného místa na plátně. K určení pozice a velikosti použijte druhý příklad.

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

Druhý příklad naklonuje nový vizuál s konkrétním rozložením a po vytvoření se nezaměří na nový vizuál.

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

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

Třetí příklad kódu klonuje do nového vizuálu s konkrétním rozložením a novými filtry.

    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);

Důležité informace a omezení

Vizuál můžete naklonovat pouze v případě, že je sestava plně vykreslená, takže před voláním rozhraní API pro klonování vizuálu počkejte na událost rendered.