进行更改后,将Power BI嵌入式报表保存在数据库中

学习AspNet

我正在使用Power Bi嵌入式软件包来嵌入Power Bi报告-https://github.com/microsoft/powerbi-client-react

报告嵌入在编辑模式下,因此用户可以创建或编辑报告。现在,我有了一个保存按钮,一旦用户对Power Bi报表进行了更改,我想将该报表保存在数据库中。您能告诉我如何触发报告事件吗?似乎允许的保存事件不起作用。

另外,如果我必须在用户进行更改或创建报表后获取报表实例,如何才能再次获取报表实例以反映新的更改?

<PowerBIEmbed
    embedConfig = {{
        type: 'report',   // Supported types: report, dashboard, tile, visual and qna
        id: '<Report Id>',
        embedUrl: '<Embed Url>',
        accessToken: '<Access Token>',
        tokenType: models.TokenType.Embed,
        viewMode: models.ViewMode.Edit,
        settings: {
            panes: {
                filters: {
                    expanded: false,
                    visible: false
                }
            },
            background: models.BackgroundType.Transparent,
        }
    }}

    eventHandlers = { 
        new Map([
            ['loaded', function () {console.log('Report loaded');}],
            ['rendered', function () {console.log('Report rendered');}],
            ['error', function (event) {console.log(event.detail);}]
        ])
    }
        
    cssClassName = { "report-style-class" }

    getEmbeddedComponent = { (embeddedReport) => {
        this.report = embeddedReport as Report;
    }}
/>

报表已正确嵌入,但是现在有人进行了更改后,如何再次获取更新的报表实例,以便获得视觉效果并将其存储在数据库中?

mayur_007X

当前,power-client-react不支持创建新报告。但是,您可以使用该库编辑现有报告并将其另存为新报告。为此,您需要执行以下步骤:

  1. 生成嵌入令牌

    • 如果要将报告更改另存为新报告,请在生成嵌入令牌请求中传递以下JSON正文:

      {
        "accessLevel": "Edit",
        "allowSaveAs": "true",
      }
      
    • 如果要将报告更改保存在同一报告中,请在生成嵌入令牌请求中传递以下JSON正文:

      {
        "accessLevel": "Edit",
      }
      
  2. 嵌入报告-在您的embedConfig对象中添加以下配置:

    viewMode: models.ViewMode.Edit,
    permissions: models.Permissions.All,
    
  3. 处理“保存”事件:

    • 如果要将报告更改另存为新报告,请在eventHandlers映射中添加以下事件处理程序以获取新报告ID,然后嵌入新报告以获取其实例:

      ['saved', function (event) {
          var newReportId = event.detail.reportObjectId);
      }]
      
    • 如果要将报表更改保存在同一报表中,请在eventHandlers映射中添加以下事件处理程序,以确保已保存更改:

      ['saved', function (event) {
          console.log("Report saved");
      }]
      
  4. 保存报告:

    • 以编程方式:如果要保存按钮单击事件的更改并在单击侦听器中调用以下函数,请在应用程序中添加一个保存按钮:

      1. 如果要将报告更改另存为新报告

        function saveReport() {
          var saveAsParameters = {
              name: "<name_of_new_report>"
            };
          this.report.saveAs(saveAsParameters);
        }
        
      2. 如果报告更改要保存在同一报告中

        this.report.save();
        
    • Power BI嵌入式体验:

      1. 如果要将报告更改另存为新报告:
        • 单击左上角的“文件”下拉菜单>单击“另存为”>输入新报告的名称>单击“保存”
      2. 如果要将报告更改保存在同一报告中:
        • 单击左上角的“文件”下拉菜单>单击“保存”

注意:保存操作完成后,将触发“ saved”事件,该事件将返回一个Json对象,其中包含新的reportId,报告名称,旧的reportId(如果有的话)以及该操作是saveAs还是save。然后,您可以使用此newReportId生成嵌入网址和嵌入令牌,以嵌入报告并获取报告实例。

您可以参考GitHub Wiki创建新报告。

Microsoft Docs中找到完整的文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Power BI 嵌入式报表成本

返回用户后保存在数据库中?

将嵌入式HSQL数据库保存到文件

在嵌入式Power BI中过滤数据

Power BI嵌入式报表选择器

将哈希值保存在数据库中

将图像路径保存在数据库中

将选择保存在数据库中

将类实例保存在数据库中

将屏幕截图保存在数据库中

无法将图片保存在数据库中

从jLabel将图像保存在数据库中

将空值保存在数据库中

我可以将动态查询参数传递给ASP.Net MVC中的嵌入式Power BI报表吗?

将数据嵌入到已保存的Power BI报表中时

将插件加载到 Neo4j 数据库的嵌入式版本中

将帖子保存在数据库中后如何获取帖子的 ID?

将LambdaExpression与字符串进行序列化以保存在数据库中

嵌入 angular 或使用嵌入式 URL REST API 后,如何从嵌入式 Power BI 报告/视觉对象中读取数据点值详细信息?

什么时候将数据库称为嵌入式数据库?

嵌入式 power bi 中的报表视觉效果和磁贴有什么区别?

将数据保存在数据库中或将数据保存在文件中哪个更合适?

小豆 如何从控制器中的Ajax将数据保存在数据库中

如何通过幼虫中的控制器将数据保存在数据库中

'将HTML表单数据保存在数据库中'Django

如何使用自定义键将数据保存在数据库中?

如何在Laravel上使用Cast将数据json保存在数据库中?

将敏感数据保存在数据库中-安全的服务器通信

将历史数据保存在数据库中