イベントを処理する方法

先端

Power BI Embedded Analytics PlaygroundDeveloper サンドボックス セクションで、独自のレポートまたはサンプル レポートを使用して、リアルタイムで API を試してください。

イベントは、Power BI コンポーネント (レポートなど) と Web アプリケーション コード間の通信に使用されます。

埋め込みコンポーネントは、コンポーネント内でアクションが実行された後にイベントを生成します。 これらは、コンポーネント内でのユーザー操作や自動化されたアクション (ビジュアルのレンダリングなど) です。

たとえば、buttonClicked は、ユーザーがレポート内のボタンをクリックしたときに Power BI レポートによって生成されるイベントです。 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

イベントは、ユーザーが UI で [名前を付けて保存] クリックしたときに発生します。 これにより、[名前を付けて保存] アクション 独自のダイアログ 作成できます。

保存

saved イベントは、UI の save または saveAs アクション、または API を使用して保存がトリガーされたときに発生します。

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

イベントは、ビジュアルがレンダリングされるときに発生します (settings オブジェクトで true を するには、 を設定する必要があります)。

手記

ビジュアルはユーザーの操作によってレンダリングされる可能性があるため、このイベントは必要なときにのみ有効にすることをお勧めします。

 name: 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

タイル イベント

タイル イベントは、ユーザーがタイルをクリックしたときに発生します。

tileClicked (タイル イベント)

tileClicked イベントは、エンド ユーザーがタイルをクリックしたときに発生します。 ピン留めされたライブ ページでは発生しません。

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

tileLoaded

タイルが初期化されると、tileLoaded イベントが発生します。 Power BI ロゴが消えると、読み込みが完了します。