代码之家  ›  专栏  ›  技术社区  ›  meta

PowerBi Javascript:如何找到设置切片器的visualName值?

  •  0
  • meta  · 技术社区  · 6 年前

    我正在尝试使用Microsoft的PowerBI JavaScript库在网页中嵌入报表。我想在加载时应用切片器,这取决于我所在的实际页面(因此在报告中默认情况下无法完成)。

    库wiki通过在传递给嵌入函数的配置中设置切片器提供了一种方法。切片器对象如下所示(从文档中 https://github.com/Microsoft/PowerBI-JavaScript/wiki/Slicers )以下内容:

    interface ISlicer {
      // Selects a slicer to change.
      selector: SlicerSelector;
    
     // A new state of the slicer
     state: ISlicerState;
    }
    
    interface ISlicerSelector {
      $schema: string;
      visualName: string;
    }
    

    我很高兴使用给出的过滤示例设置状态,但是我在查找选择器的VisualName时遇到了问题-我在界面中看不到它(在查看或编辑时),我尝试使用我可以看到的名称/标题等,但都不起作用。

    如何找到和/或设置此可视化名称?

    1 回复  |  直到 6 年前
        1
  •  0
  •   meta    6 年前

    我在用户界面中找不到查看此内容的方法。希望有比下面更好的方法,但这确实有效。

    但是,如果您能够在本地运行一些代码,则可以使用api或使用这个库。

    在我的例子中,我通过(在本地开发时)找到页面,然后找到报表呈现后显示的视觉效果,将数据记录到控制台,并确定我想要的视觉效果。

    类似于:

    report.on('rendered', () => {
            report.getPages().then(pages => {
                pages[0].getVisuals().then(visuals => console.log(visuals))
            });
        });
    

    在这种情况下,我只关心第一页。

    然后,这会将关于每个visual的一些数据记录到控制台,包括坐标值和visualname,这样我就能够识别出我感兴趣的visualname属性。

    令人困惑的是,visualname属性看起来更像一个id(尽管不是guid)。