Aracılığıyla paylaş


Aşamalı ekleme kullanma

Power BI tümleşik analiz powerbi.load ve report.render API'leri, geliştiricilere rapor ekleme aşamaları için daha fazla esneklik sağlayarak son kullanıcı deneyimini geliştirebilir.

Normalde, powerbi.embedkullanarak eklenmiş bir rapor yüklersiniz:

let report = powerbi.embed(embedContainer, embedConfig);

Eklenen rapor, kullanıcı arabiriminde yüklenir ve işlenir. Ardından son kullanıcı, işlenen raporla tüm etkileşimleri görür. Örneğin, bir dilimleyici durumu uygularsanız, son kullanıcı rapor işlendikten sonra dilimleyicinin etkili olduğunu görür.

Bu etkileşimleri son kullanıcılardan gizlemek için powerbi.load ve report.render API'leri ekleme işlemini aşamalara ayırır. powerbi.load işlevi, son kullanıcılar sonuçları görmeden önce öğelerle etkileşim kurabilmeniz için raporu yükler. ardından report.render işlevi raporu görüntüler.

Yük

powerbi.load işlevi raporu yükler ancak işlemez, bu nedenle son kullanıcı sonuçları görmeden etkileşimler gerçekleşebilir. Örneğin, report.getPagesile powerbi.load kullanabilir ve ardından son kullanıcının hangi sayfayı göstereceğini belirtebilirsiniz. Alternatif olarak, page.getVisualskullanabilir ve ardından hangi görsellerin gösterilip gizleneceğine karar vekleyebilirsiniz.

powerbi.embedgibi powerbi.load işlevi de bir HTML öğesi ve IEmbedConfiguration nesnesi gerektirir.

Yük tamamlandığında, bir loaded olayı tetiklenir.

let config = {
    ...
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Load the report in the container.
let report = powerbi.load(embedContainer, config);

report.on('loaded', function() {
    ...
});

Render

powerbi.loadkullanıyorsanız kodunuzu çalıştırdıktan sonra loaded olay işleyicisi işlevinde report.render işlevini çağırmanız gerekir. Rapor işlemeye devam etmek ve eklenmiş raporu görüntülemek için report.render kullanın.

Rapor işleme tamamlandığında bir rendered olayı tetiklenir.

report.on('loaded', function() {
    report.render();
});

report.on('rendered', () => {
    ...
});

Olayları işleme hakkında daha fazla bilgi için olayları işleme bölümüne bakın.

Örnek

Aşağıdaki kod örneği bir raporu yükler, filtreleri ayarlar ve filtrelenmiş raporu işler.

// Build the config object.
let config = {
    type: 'report',
    tokenType: TokenType.Embed,
    accessToken: ...,
    embedUrl: ...,
    id: ...,
    ...
};
 
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Load the report in the container.
let report = powerbi.load(embedContainer, config);

...
report.on('loaded', async () => {
    await report.setFilters(filters);
    report.render();
});

Dikkat edilmesi gerekenler ve sınırlamalar

Aşamalı ekleme, rapor işlemeyi yavaşlatabilir, bu nedenle doğru ve yalnızca ihtiyacınız olduğunda kullandığınızdan emin olun.

Raporu yükledikten sonra ve report.renderçağırmadan önce aşağıdaki API'leri çağırabilirsiniz:

Yöntem Eylem
BookmarksManager.getBookmarks, BookmarksManager.apply Yer işaretlerini alın ve uygulayın. Yer işaretlerinin yakalanması desteklenmez.
Report.updateSettings Rapor ayarlarını güncelleştirin.
Report.applyTheme Rapor temasını uygulayın.
Report.getFilters, Report.setFilters, Report.removeFilters Rapor filtrelerini alın, ayarlayın ve kaldırın.
Report.getPages Rapor sayfalarını alın.
Page.setActive Etkin rapor sayfasını ayarlayın.
Page.getFilters, Page.setFilters, Page.removeFilters Sayfa filtrelerini alın, ayarlayın ve kaldırın.
Page.getVisuals Sayfa görsellerini alma.
Visual.getFilters, Visual.setFilters, Visual.removeFilters Görsel filtreleri alın, ayarlayın ve kaldırın.
Visual.getSlicerState, Visual.setSlicerState Görsel dilimleyici durumunu alma ve ayarlama.