如何處理事件

提示

在 Power BI Embedded Analytics 遊樂場的 開發人員沙箱 區段中,使用您自己的報表或我們的範例報表,實時實驗 API。

事件可用來在Power BI元件(例如報表)與Web應用程式程式代碼之間進行通訊。

內嵌元件會在元件內執行動作之後發出事件。 這些可以是用戶互動或元件內的自動化動作(例如正在轉譯的視覺效果)。

例如,當使用者按兩下報表中的按鈕時,Power BI 報表會發出 buttonClicked 事件。 您可以使用 report.on(...)來接聽事件,然後設定事件處理程式。

如何處理事件的範例

此範例示範如何處理報表事件。 若要瞭解其他類型的事件,請參閱 事件及其回應值。

注意

使用 API 之前,請等候元件載入。 接聽載入的事件,然後發出新的命令。

report.on('loaded', function(event)
{
    reportPages = await report.getPages();
});

如何移除事件處理程式

您可以使用 report.off(...) 來移除特定事件的所有事件處理程式。

事件及其回應值

檢視可能事件及其回應值的完整清單。

錯誤事件 (與所有內嵌相關)

發出錯誤事件來描述失敗的作業。

interface IError {
    message: string // A general message that describes the operation that failed (example: "Could not set page")
    detailedMessage?: string // Detailed message that describes the error
    errorCode?: string  //  Short message that describes the error
    level?: TraceType // The level of the error (example: 'Fatal')
    technicalDetails?: ITechnicalDetails
}

interface ITechnicalDetails {
    requestId?: string // Id for debugging - should be provided when reporting a bug
}

注意

只需要 message 屬性,而且其他屬性可能未定義。

報告事件

報表事件會發出,以便與內嵌報表互動,例如按兩下報表按鈕或轉譯視覺效果。

buttonClicked

當使用者按兩下 [buttonClicked 按鈕時,就會引發 事件。

 id: string
 title?: string
 type?: string (type of button)
 bookmark?: string

commandTriggered

當使用者按兩下 commandTriggered時,就會引發 事件。

 command: string
 dataPoints?: IIdentityValue[]
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

dataHyperlinkClicked

點選超連結時,就會引發 dataHyperlinkClicked 事件,且 超鏈接的行為 設定為 NavigateAndRaiseEvent 或 RaiseEvent。

 url: string
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

如需詳細資訊,請參閱 設定報表設定。

dataSelected

選取特定數據點時,會引發 dataSelected 事件。 不支援範圍和相對交叉分析篩選器。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual
 filters: IFilter[]
 dataPoints: IIdentityValue[]

載入

當報表初始化時,就會引發 loaded 事件。 當 Power BI 標誌消失時,載入就會完成。

pageChanged

每當頁面變更時,就會引發 pageChanged 事件。

 newPage: Models.IPage

呈現

當報表完全轉譯時,就會引發 rendered 事件。 例如,如果載入報表或用戶互動之後,所有視覺效果都會呈現。

saveAsTriggered

當 useCustomSaveAsDialog: true時,當使用者在UI中按兩下 saveAsTriggered 時,就會引發 事件。 這可讓您為 另存新檔 動作建立自己的對話方塊。

保存

saved 事件會在UI或 API 中使用 API 的 save 或 saveAs 動作觸發儲存時引發。

selectionChanged

每當使用者變更選取的視覺效果時,就會引發 selectionChanged 事件。 當選取多個視覺效果時,selectedItems 是所有選取的視覺效果清單。

 report: models.IReport
 page: models.IPage
 visual?: models.IVisual
 selectedItems?: models.IVisual[]

visualClicked

每次按兩下視覺效果時,就會引發 visualClicked 事件。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual

visualRendered

當呈現視覺效果時,會引發 visualRendered 事件(需要在 settings 物件中將 visualRenderedEvents 設定為 true)。

注意

由於視覺效果可能會因為用戶互動而轉譯,因此建議只有在需要時才開啟此事件。

 name: string

如需詳細資訊,請參閱 設定報表設定。

匯出資料已完成

當匯出資料操作完成時,透過視覺化的匯出資料對話框,該 exportDataCompleted 事件會被觸發。

 status: models.ExportDataCompletedStatus
 exportDataType: models.ExportDataResultType
 exportFormat: models.ExportDataResultFormat
 pageName: string
 visualName: string

報表內嵌行動事件

報表內嵌行動裝置事件會發出,以便與行動版面配置中的內嵌報表互動,例如撥動的開頭或結尾。

swipeStart 和 swipeEnd 事件

當用戶開始或結束內嵌報表上的撥動移動時,就會引發 swipeStart 或 swipeEnd 事件。

interface ISwipeEvent {
    currentPosition: IPosition
    startPosition: IPosition
}

interface IPosition {
    x: number
    y: number
}

儀錶板事件

當儀錶板載入時,以及用戶單擊儀錶板中的磚時,就會發出儀錶板事件。

載入

當儀錶板初始化時,會引發 loaded 事件。

tileClicked

當使用者按兩下磚時,就會引發 tileClicked 事件。 未針對釘選的即時頁面引發。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

Q&A 事件

當視覺效果在輸入問題之後呈現時,就會引發問答 (Q&A) 事件。

visualRendered (Q&A)

當輸入問題並顯示答案之後,視覺效果呈現時,就會引發 visualRendered 事件。

 question: string
 normalizedQuestion: string

磚事件

當使用者按兩下磚時,就會引發 Tile 事件。

tileClicked (磚事件)

當使用者按兩下磚時,就會引發 tileClicked 事件。 未針對釘選的即時頁面引發。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

tileLoaded

當磚初始化時,會引發 tileLoaded 事件。 當 Power BI 標誌消失時,載入就會完成。