複製視覺效果

複製視覺效果 API 會將特定視覺效果複製到 Power BI 報表的使用中頁面。 您可以從報表中的任何頁面將視覺效果複製到使用中頁面。 複製視覺效果可讓您使用原始視覺效果的不同版面配置或篩選來製作複本。

如何複製視覺效果

Power BI Client VisualDescriptor 類別,將 clone 方法定義為:

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

ICloneVisualRequest 介面中:

  • IFilter 描述要套用至複製視覺效果的篩選條件。
  • IVisualLayout 定義複製的視覺效果大小和位置。
  • autoFocus 屬性會決定在建立之後是否將焦點放在複製的視覺效果上。

ICloneVisualResponse 介面會傳回新的複製視覺效果名稱或唯一標識符。

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

若要取得報表中所有視覺效果的清單,請使用 類別的 Page 方法。

例子

第一個程式代碼範例會複製具有預設設定的視覺效果。 新視覺效果的位置和大小代表將視覺效果放入畫布上的空白空間的最佳努力。 若要指定位置和大小,請使用第二個範例。

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

第二個範例會複製至具有特定版面配置的新視覺效果,而且不會在建立之後將焦點放在新的視覺效果上。

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

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

第三個程式代碼範例會複製至具有特定配置和新篩選的新視覺效果。

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

考慮和限制

只有當報表完全轉譯時,您才能複製視覺效果,因此在呼叫複製視覺效果 API 之前,請先等候 rendered 事件。