Skip to main content

moregeek program

在model-driven app中使用自定义页面(custom page)_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第478篇原创文章,写于2022年8月24日。

这个文章不是以前我写的博文 ​​嵌入Canvas App到Model-Driven App中​​ 那种,而且以前嵌入的这种也不再推荐使用了。

今天要介绍的内容请参考官方文档:

为了说明,我假想个场景,就是在一个实体的表单上增加一个按钮,点击打开一个custom page,这个page展示文件字段的图片(假设上传的文件是图片)。

添加Custom Page的方法有多种,我使用常见的这种,登录 ​​https://make.powerapps.com/​​ ,打开自己建立的解决方案,点击 New > App > Page.

在Model-Driven App中使用自定义页面(Custom Page)_Power Apps


打开的界面如下,这个和Canvas App的开发界面非常相似,就是个简版的Power Apps Studio。从官方文档也可以知道,目前只支持独立Canvas App程序支持的部分控件。

在Model-Driven App中使用自定义页面(Custom Page)_Custom Page_02


我这里插入一个Media分组下的 Image控件,将其 X, Y属性都设置为0, Width设置为Parent.Width, Height 设置为Parent.Height 。

在Model-Driven App中使用自定义页面(Custom Page)_Custom Page_03


然后点击左侧的 Data图标,添加数据源,点击Add data将用到的表添加进来。

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_04



我这里设置 App对象 的OnStart 事件代码如下:

Set(
RecordItem,
If(
IsBlank(Param("recordId")),
First('Test Entities'),
LookUp(
'Test Entities',
'Test Entity' = GUID(Param("recordId"))
)
)
)

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_05


然后我将前面插入到屏幕中的Image的Image属性设置为 "​https://org51fb1eac.crm5.dynamics.com/api/data/v9.2/ly_testentities​​(" & Text(RecordItem.'Test Entity') & ")/ly_file/$value" 。可以看到我这个url的前面部分是写死的,可以将这个作为环境变量存储起来,这样就灵活些,如何做请参考我的博文 ​​Canvas App中获取存储格式为JSON的环境变量的值并解析成集合​​ ,我这里为了简化就不做这么复杂了。

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_06


点击Save按钮,输入个好名字,然后保存。

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_07


最好发布下:

在Model-Driven App中使用自定义页面(Custom Page)_Custom Page_08


然后在解决方案中就会新增一条Type为Page的记录,复制好Name,后面代码要用。

在Model-Driven App中使用自定义页面(Custom Page)_Custom Page_09


当前的这个Model-Driven App要能使用的话还需要添加进来,编辑这个App,点击  Add page.

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_10


选择 Custom 后点击 Next 按钮。

在Model-Driven App中使用自定义页面(Custom Page)_Power Apps_11


选择 Use an existing custom page,然后选择要添加的custom page,因为这个page我不需要显示在导航栏,所以取消掉 Show in navigation 这个前面的复选框,然后点击 Add 按钮。

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_12


然后我还需要保存并发布这个App。以后若是修改了Custom Page,除了这个Custom Page要发布外,用到这个Custom Page的Model-driven App也要发布。

在Model-Driven App中使用自定义页面(Custom Page)_Power Apps_13


为了测试效果,我在表单界面新增一个查看图片的按钮。

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_14

执行的代码如下:注意代码传递recordId的时候要去掉前后的 { 和 }字符,否则custom page接收到的这个参数的值为空。

"use strict";
var LuoYong = window.LuoYong || {};
LuoYong.TestEntity = LuoYong.TestEntity || {};
(function () {

this.ShowCustomPageAction = function (primaryControl) {
try {
var formContext = primaryControl;
var pageInput = {
pageType: "custom",
name: "ly_luoyongdemocustompageapp_b9378",
entityName: "ly_testentity",
recordId: formContext.data.entity.getId().replace('{', '').replace('}', ''),
};
var navigationOptions = {
target: 2,
position: 1,
width: { value: 50, unit: "%" },
title: "查看图片"
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions)
.then(
function () {
// Called when page opens
}
).catch(
function (error) {
// Handle error
}
);
}
catch (ex) {
Xrm.Navigation.openErrorDialog({ message: ex.message });
}
};
}).call(LuoYong.TestEntity);


点击后看到的效果如下:

在Model-Driven App中使用自定义页面(Custom Page)_Dynamics 365_15

©著作权归作者所有:来自51CTO博客作者luoyong0201的原创作品,请联系作者获取转载授权,否则将追究法律责任

什么是mdm_manageengine it运维服务的博客-多极客编程

MDM或移动设备管理是一种软件应用程序,用于管理企业中的终端,如笔记本电脑、智能手机、平板电脑等。随着越来越多的员工使用这些设备,各种形式和规模的企业现在都转向移动设备管理,以增强数据安全性并提高生产力。 MDM是什么意思 移动设备管理(MDM)是管理移动设备的所有内容的过程。MDM包括存储有关移动设备的基本信息、决定设备上可以存在哪些应用、定位设备,以及在设备丢失或被盗时保护设备。许多企业使用第

canvas app中列表的选择全选及针对所选择记录执行操作_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第477篇原创文章,写于2022年8月17日。今天讲解的是一个常见的需求,一个记录列表,可以选择一条或者多条记录,提供全选按钮,可以对选

在canvas app中实现更加灵活的文件上传_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第476篇原创文章,写于2022年8月16日。附件控件的官方文档请参考 ​​Attachments control in Power A

定制列表界面打开记录的行为以便执行自定义操作的示例_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第480篇原创文章,写于2022年8月29日。我们知道在表的列表界面(含子网格,主要列表界面)中通过如下方式会打开这条记录的表单(详情页

什么是itsm/itsm sla_manageengine it运维服务的博客-多极客编程

ITSMITSM,即IT服务管理,起源于ITIL(IT Infrastructure Library,IT基础架构标准),是一套帮助企业对IT系统的规划、研发、实施和运营进行有效管理的方法,是一套方法论。在欧洲有60%的IT从业者都知道ITSM,在美国有30%的IT从业者了解ITSM,而在国内了解ITSM的人还很少。IT运营方面的问题,更多的不是来自技术,而是来自管理方面。当下很多人首先想到的是业

定制现代命令按钮(modern commands)示例_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第481篇原创文章,写于2022年8月31日。以前我们常使用Ribbon Workbench来定制命令栏,不过以前的命令栏被成为经典命令

canvas app中列表的选择全选及针对所选择记录执行操作_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第477篇原创文章,写于2022年8月17日。今天讲解的是一个常见的需求,一个记录列表,可以选择一条或者多条记录,提供全选按钮,可以对选

在canvas app中实现更加灵活的文件上传_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第476篇原创文章,写于2022年8月16日。附件控件的官方文档请参考 ​​Attachments control in Power A

使用component library制作一个bar类型的图表_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第475篇原创文章,写于2022年8月15日。Component library,就是组件库的意思,可以自己开发一些组件库,里面可以包含

定制列表界面打开记录的行为以便执行自定义操作的示例_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第480篇原创文章,写于2022年8月29日。我们知道在表的列表界面(含子网格,主要列表界面)中通过如下方式会打开这条记录的表单(详情页

定制现代命令按钮(modern commands)示例_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第481篇原创文章,写于2022年8月31日。以前我们常使用Ribbon Workbench来定制命令栏,不过以前的命令栏被成为经典命令

使用power automate和adobe acrobat sign实施电子签名示例_微软dynamics 365专家的博客-多极客编程

我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第482篇原创文章,写于2022年9月9日。官方文档请参考:​​Adobe Sign for Microsoft PowerApps a