Bagikan melalui


API Visual

Semua visual dimulai dengan kelas yang mengimplementasikan IVisualantarmuka. Anda dapat memberi nama kelas apa pun asalkan ada satu kelas yang mengimplementasikan antarmuka IVisual.

Catatan

Nama kelas visual harus sama dengan visualClassName di file pbiviz.json.

Kelas visual harus menerapkan metode berikut seperti yang ditunjukkan dalam sampel berikut:

  • constructor - konstruktor standar yang menginisialisasi status visual
  • update - memperbarui data visual
  • getFormattingModel, mengembalikan model pemformatan yang mengisi panel properti (opsi pemformatan) tempat Anda dapat mengubah properti sesuai kebutuhan
  • destroy - destruktor standar untuk pembersihan
class MyVisual implements IVisual {
    
    constructor(options: VisualConstructorOptions) {
        //one time setup code goes here (called once)
    }
    
    public update(options: VisualUpdateOptions): void {
        //code to update your visual goes here (called on all view or data changes)
    }

    public getFormattingModel(): FormattingModel {
        // returns modern format pane formatting model that contain all format pane components and properties (called on opening format and analytics pane or on editing format properties)
    }
    
    public destroy(): void {
        //one time cleanup code goes here (called once)
    }
}

constructor

constructor kelas visual dipanggil saat instans visual dibuat. Ini dapat digunakan untuk operasi penyiapan apa pun yang dibutuhkan visual.

constructor(options: VisualConstructorOptions)

VisualConstructorOptions

Antarmuka ini diperbarui dengan setiap versi API baru. Untuk format antarmuka yang paling diperbarui, buka repositori GitHub kami.

Daftar berikut ini menjelaskan beberapa properti VisualConstructorOptions antarmuka:

  • element: HTMLElement - referensi ke elemen DOM yang berisi visual Anda

  • host: IVisualHost - kumpulan properti dan layanan yang dapat digunakan untuk berinteraksi dengan host visual (Power BI)

    IVisualHost berisi layanan berikut:

    • createSelectionIdBuilder - menghasilkan dan menyimpan metadata untuk item yang dapat dipilih di visual Anda
    • createSelectionManager - membuat jembatan komunikasi yang digunakan untuk memberi tahu host visual tentang perubahan dalam status pemilihan, lihat Selection API.
    • hostCapabilities
    • refreshHostData
    • downloadService- mengembalikan informasi hasil yang diperluas dari unduhan.
    • eventService - mengembalikan informasi tentang peristiwa penyajian.
    • hostEnv
    • displayWarningIcon - mengembalikan pesan kesalahan atau peringatan.
    • licenseManager - mengembalikan informasi lisensi.
    • createLocalizationManager- menghasilkan manajer untuk membantu pelokalan
    • applyJsonFilter - menerapkan jenis filter tertentu. Lihat FILTER API
    • applyCustomSort - memungkinkan opsi pengurutan kustom.
    • acquireAADTokenService- mengembalikan informasi autentikasi ID Microsoft Entra.
    • webAccessService - mengembalikan status izin untuk mengakses sumber daya jarak jauh.
    • openModalDialog - mengembalikan kotak dialog.
    • persistProperties - memungkinkan pengguna untuk membuat pengaturan persisten dan menyimpannya bersama dengan definisi visual, sehingga mereka tersedia pada reload berikutnya
    • eventService- mengembalikan layanan peristiwa untuk mendukung Peristiwa render
    • storageService - mengembalikan layanan untuk membantu menggunakan penyimpanan lokal dalam visual
    • storageV2Service - mengembalikan layanan untuk membantu menggunakan penyimpanan lokal versi 2 di visual
    • tooltipService- mengembalikan layanan tipsalat untuk membantu menggunakan tipsalat dalam visual
    • telemetry
    • drill
    • launchUrl - membantu meluncurkan URL di tab berikutnya
    • authenticationService - mengembalikan token ID Microsoft Entra.
    • locale - mengembalikan string lokal, lihat Pelokalan
    • instanceId - mengembalikan string untuk mengidentifikasi instans visual saat ini
    • colorPalette - mengembalikan colorPalette yang diperlukan untuk menerapkan warna ke data Anda
    • fetchMoreData - mendukung penggunaan lebih banyak data daripada batas standar (1.000 baris). Lihat Mengambil data lainnya
    • switchFocusModeState - membantu mengubah status mode fokus

pembaruan

Semua visual harus menerapkan metode pembaruan publik yang dipanggil setiap kali ada perubahan di lingkungan data atau host.

public update(options: VisualUpdateOptions): void

VisualUpdateOptions

  • viewport: IViewport - dimensi viewport bahwa visual harus dirender di dalamnya
  • dataViews: DataView[] - objek tampilan data yang berisi semua data yang diperlukan untuk merender visual Anda (visual umumnya menggunakan properti kategoris di bawah DataView)
  • type: VisualUpdateType- bendera yang menunjukkan jenis data yang sedang diperbarui (Resize | ViewMode | Style | ResizeEnd Data) |
  • viewMode: ViewMode- bendera yang menunjukkan mode tampilan visual (Lihat | Edit | InFocusEdit)
  • editMode: EditMode- bendera yang menunjukkan mode edit visual (Default | Advanced) (jika visual mendukung AdvancedEditMode, itu harus merender kontrol UI tingkat lanjut hanya ketika editMode diatur ke Tingkat Lanjut, lihat AdvancedEditMode)
  • operationKind?: VisualDataChangeOperationKind- bendera yang menunjukkan jenis perubahan data (Buat | Tambahkan)
  • jsonFilters?: IFilter[] - kumpulan filter json yang diterapkan
  • isInFocus?: boolean - bendera untuk menunjukkan apakah visual berada dalam mode fokus atau tidak

getFormattingModel (opsional)

Metode ini dipanggil sekali setiap kali kita membuka panel properti atau pengguna mengedit salah satu properti di panel. Ini ditampilkan FormattingModel dengan semua informasi tentang desain panel properti, hierarki, properti, dan nilai pemformatan terbaru.

getFormattingModel(): visuals.FormattingModel;

destroy (opsional)

Fungsi destroy dipanggil saat visual Anda dibongkar dan dapat digunakan untuk tugas pembersihan seperti menghapus listener peristiwa.

public destroy(): void

Tip

Power BI umumnya tidak memanggil destroy karena lebih cepat menghapus seluruh IFrame yang berisi visual.