做者:陈希章 发表于 2017年12月14日git
在上一篇 使用PowerApps快速构建基于主题的轻业务应用 —— 入门篇 中,我用了三个实际的例子演示了如何快速开始使用PowerApps构建轻业务应用,你可能已经发现,我都是使用默认生成的设置,没有作任何修改。固然,那样作出来的应用看起来不那么酷,但已经能够运行了,做为一个起点,已经不错了,不是吗?github
但这样自动生成的应用,估计也不能直接用于我们实际的工做中,为了达到这个目的,你还多多少少须要掌握一些“高级”知识,而且要多一些练习。这一篇将从以下几个方面展开介绍编程
让咱们再次回到以前自动生成好的基于Excel文件的订单应用吧。安全
咱们先从左侧开始来剖析一下这个应用。做为一个给最终的业务用户使用的应用,它是怎么构建用户界面的呢?这个应用虽然简单,但其实已经包含了咱们常说的“增删改查”的四项基本功能。PowerApps的应用是由一个一个的Screen(屏幕)组成的,一个屏幕一般表明了某一项功能,例如服务器
值得注意的是,以上名称只是推荐的作法,并不强制要求查询的屏幕名称必须叫BrowseScreen,也不要求你必需要上面三个屏幕。事实上,你随时能够添加本身须要的屏幕(Screen)。app
顺便要提一下的是,PowerApps的应用天生就是面向移动设备来使用的,因此它默认是有两种布局:手机的布局,和平板电脑的布局。咱们此前自动生成应用的时候,是选择“手机的布局(Phone Layout),这个取决于模板的设置。但一旦熟悉以后,咱们彻底能够本身选择布局,而后开始设计。编程语言
你能够从零开始作,也能够从一个模板开始作,但请注意此次选择“Tablet Layout”ide
回到应用自己,咱们刚才说了,PowerApps的应用是由一个一个屏幕组成的,那么屏幕又是由什么组成的呢?控件。函数
PowerApps的控件,整体来讲,分为两大类,一类是容器控件,一类是普通控件。容器控件是能够包含其余控件的控件。主要包括下面两类:工具
相比较而言,普通控件则更多,也更加有意思。整体来讲,能够分为下面几个类别,请注意粗体部分,这是PowerApps在移动优先这个目标之下的一些亮点功能。
<a href="xxxx">文本</a>
如今你对于PowerApps所支持的一些图形化界面元素都有了一个基本的了解,接下来就是怎么真正地使用好它们了。你不须要去学一门编程语言,只须要知道这些控件的使用无外乎两个方面
为控件的属性赋值。通常是选中一个控件后,在右侧会有一个属性面板,列出了全部能够设置的属性。固然,若是你已经比较熟悉的话,则能够在工具栏下面的编辑栏中直接输入属性名和值,快速来完成设置。
为控件的事件绑定表达式。除了纯粹显示数据的控件,大部分控件都是能够交互式操做的,例如接受用户的点击等。如何为这种行为作出响应呢?在编程中,咱们的专业术语叫编写事件处理程序。PowerApps不须要编码,因此它提供了一些特殊的表达式来实现简单的事件处理逻辑。例以下面是一个最多见的按钮事件,当用户点击后,它会从第一个屏幕切换到第二个屏幕。这里用的是navigate函数(另外还有Back,Forward函数来表示后退和前进)。你其实不须要记住这些东西,选择你的控件后,在顶部的Action菜单中,通常会列出来该控件支持的常见的操做。Navigate是一个导航的功能,Collect是一个收集数据的功能(我在下一节会介绍),Remove则是删除数据的操做,跟Collect对应。Flows可以发起一个外部流程,这里先不作展开,后续有专门的文章介绍。
请注意,你能够在事件表达式中定义多个操做,只要用分号将他们分开便可,例如
Collect(TestData,Dropdown1.Selected);Navigate(Screen2, ScreenTransition.Fade)
在这里,我建议你们花个半天的时间,逐一地了解这些控件,理解常见的属性以及事件,只要大体作过一次,我相信对于你往后使用PowerApps将有极大的帮助。
接下来要谈一谈数据。你们知道,界面只是一个表象,真正用户在交互的实际上是数据。我在 入门篇 中已经介绍了Excel文件,SharePoint List,Dynamics 365的业务实体做为数据的场景。今天要进一步深刻探讨一下。
首先,你要知道的是,一个PowerApps的应用可使用多个数据源,一个数据源反过来也能够用于多个PowerApp的应用中。在顶部菜单中找到View,点击Data Source能够查看到当前这个应用中能用到的全部数据源,固然也能够添加你须要的其余数据源。
其次,你须要掌握几个常见的数据筛选函数。虽然一个应用中能支持多个数据源,可是它没有办法像PowerBI 那样在这些数据源创建映射和关系。那么,当我但愿根据用户的选择,决定对某个数据集合进行筛选、排序等操做时应该怎么办呢?答案是使用数据筛选函数。PowerApps提供了三个很是强大的函数:Filter、Search 和 LookUp。我很是推荐你们要详细阅读 https://docs.microsoft.com/zh-cn/powerapps/functions/function-filter-lookup 这篇文章而且进行实际的操做来加深了解,这是你从会作一个Hello world这样的应用到一个实际能用在工做中的应用必需要学会的。
最后,你须要了解如何在屏幕传递数据。若是咱们须要从一个屏幕切换到另一个屏幕,如何将前一个屏幕的数据传递过来呢?PowerApps提供了上下文变量的概念,并且在不少函数中都自带了这个功能,例如Navigate函数,就能够在第三个参数定义要传递下去的变量和值。下图定义了一个Language的变量,仅在这个Navigate的生命周期内有效。
你还能够经过下面的功能查看全部的变量,以及它们被使用的状况
关于PowerApps的上下文变量的细节,请参考 https://docs.microsoft.com/zh-cn/powerapps/functions/function-updatecontext
若是想要定义在整个应用程序都能用的全局变量,请参考Collect函数 https://docs.microsoft.com/en-us/powerapps/functions/function-clear-collect-clearcollect
对于绝大部分数据源来讲,每次都是以当前用户的身份去访问的。因此无论你是一个Excel文件放在OneDrive for Business,仍是一个SharePoint List,在分享给同事们以前,你须要确保他们是有权限访问到的。
PowerApps也提供了一个专门的函数(User),用来获取当前用户的邮箱,显示名称,我的头像这三个数据。
PowerApps默认支持上百种数据源,尤为是对于云端的SaaS应用有极好的支持。可是,假设你的数据不在支持列表中,或者你的数据是在公司内部的服务器,可否同样享受到PowerApps带来的好处呢?答案是能够,PowerApps经过一个网关(gateway)的技术,能够在你受权的状况下安全地链接到你私有的数据。
点击右上角的New Gateway按钮,你将被引导到一个下载界面
下载完成后双击安装,最后输入你能登陆到PowerApps的帐号进行身份认证
若是你看到下面这样的界面,则表示配置成功了。咱们发现PowerApps,Microsoft Flow,Power BI是共用Gateway这个基础设施的,无需配置三套。
那么怎么使用这个网关呢?咱们仍是要回到网关的管理界面,你看到如今多出来一个gatewaydemo的网关
接下来,你在新建链接的时候,选择你的数据源类型(例如SQL Server)后,在具体配置的时候,选择使用Connect using on-premises data gateway
详细步骤你还能够参考 这篇文章
本文的结束,我想要给你们介绍关于PowerApps的应用生命周期管理的概念。PowerApps是面向业务用户、快速开发和迭代的一个平台,只有这样才能知足随需应变的业务需求。因此,你会快速开始工做,发布你的应用,而后在使用过程当中,根据反馈再快速调整设计,而后又从新发布。这样就带来一个版本管理(或者再往大里说——应用生命周期管理)的问题。
PowerApps会为每次发布保存一个版本,例以下图能够看到个人AppTest这个应用,目前两个版本,而版本2是目前在使用的(Live)
若是你发现版本2并非很稳定,或者某些功能并非你所预期的那样正常工做,你彻底能够在这里回滚到版本1,经过点击版本1的Restore按钮便可。