You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps中Model Driven App嵌入Canvas App的数据传递及PDF Viewer的Document函数配置问题

Power Apps中Model Driven App嵌入Canvas App的数据传递及PDF Viewer的Document函数配置问题

嗨,我来帮你搞定这个需求!你要实现的是把Model Driven App(MDA)里选中行的PDF数据同步到嵌入的Canvas App的PDF Viewer中,分两大步骤就能完成:数据透传和PDF Viewer的动态配置。

一、实现MDA到Canvas App的数据透传

要让MDA把选中行的数据传给嵌入的Canvas App,需要在两边分别配置参数:

  1. 在MDA端配置输入参数

    • 打开MDA的表单编辑界面,找到你嵌入Canvas App的控件,点击它的属性设置。
    • 在「输入」区域,添加一个新的输入参数,比如命名为SelectedRecord,然后把它的取值绑定到当前表单的CurrentItem(也就是你选中的那一行完整数据)。如果你只需要PDF的关联字段(比如文件URL或Dataverse文件字段),也可以直接绑定对应字段,比如CurrentItem.PdfFile,这样更轻量化。
  2. 在Canvas App端接收参数

    • 打开嵌入的Canvas App,点击顶部的「文件」>「设置」>「高级」,找到「模型驱动应用集成」选项。
    • 在这里你会看到MDA那边配置的输入参数,把它添加为Canvas App的输入属性。之后在Canvas App里,你就可以通过Param("SelectedRecord")(或者你自定义的参数名)来获取MDA传过来的选中数据了。

二、配置PDF Viewer的Document属性(含占位符)

接下来要根据透传过来的数据,动态设置PDF Viewer的Document属性,同时添加占位逻辑:

情况1:PDF存储在Dataverse的文件字段中

如果你的PDF是存在Dataverse表的文件类型字段里,直接通过Lookup获取对应记录的文件内容即可,结合占位符的写法如下:

If(
    IsBlank(Param("SelectedRecord")),
    // 占位内容:可以是内置的示例PDF,或者你上传到Canvas App的备用PDF
    SamplePDF.Content,
    // 获取选中记录的PDF内容
    LookUp(你的Dataverse表名, ID = Param("SelectedRecord").ID).PdfFile字段.Content
)

情况2:PDF存储为外部URL(比如SharePoint、OneDrive)

如果PDF是通过URL存储的,直接把透传过来的URL赋值给Document属性,搭配占位符的写法:

If(
    IsBlank(Param("SelectedPdfUrl")),
    "https://你的占位PDF地址",
    Param("SelectedPdfUrl")
)

小提示

  • 记得给Canvas App配置足够的权限,确保它能访问MDA的数据源(比如Dataverse表、SharePoint库),否则会出现数据加载失败的情况。
  • 测试时可以在MDA里选中不同的行,打开表单查看Canvas App的PDF Viewer是否同步加载对应文件,要是没反应,先检查参数绑定和取值逻辑是否正确。

备注:内容来源于stack exchange,提问作者furgun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:05:29