Power Apps
文章平均质量分 78
aladinggao
这个作者很懒,什么都没留下…
展开
-
拆解PowerApps - 请假申请 - 12 -阶段小结
前面用11节的篇幅拆解完了请假申请App的第一个流程:新建请假申请。在这里对之前的解析涉及到的一些知识点稍加归纳总结。1. 有关 Powerapps 的运行行为控制- App 的启动页面:默认的,Powerapps在运行App时,会以树状视图最上面的一个窗口作为App启动后的首页。- App启动后的初始化行为:可以在 "App" 的 OnStart属性里,为 App 初始运行环境,比如设置所需的变量,预置所需的数据等- 页面跳转:使用Navigate()函数实现上述三点在第一节里都有提...原创 2021-02-20 12:12:25 · 673 阅读 · 0 评论 -
拆解PowerApps - 请假申请 -11
续接上一节,今天我们要解析的这个页面是新建请假申请的最后一个页面ConfirmationScreen。页面结构这个页面初看感觉很简单,稍一拆析发现还是有点意思,这个页面里其实是包括了两个“页面”。一起来看:最初从左侧的树状视图里选中最上层的 ConfirmationScreen时,右侧的页面布局展示区域显示的是下图中间那个绿色对勾的页面。结合页面的名字来看,第一感觉这个页面就是简单的实现了对请假申请进行确认的功能。把这个页面的第一级展开后,看到的是两个组合:ManagerView,Employee原创 2021-02-15 16:42:04 · 1152 阅读 · 0 评论 -
拆解PowerApps - 请假申请 -10
续接上一节,下面我们继续拆解请假申请的后续页面。本节要拆解的是ReviewScreen,先来看页面总体结构。页面结构如下图,这个页面的作用是用来汇总之前所有输入的信息,好让申请人做提交前的检查确认。若检查无误就点按钮提交申请。页面主体由一个Gallery控件构成,罗列了前几个页面的信息输入。...原创 2021-02-11 17:51:17 · 474 阅读 · 1 评论 -
拆解PowerApps - 请假申请 - 9
接着上一节,本节我们继续请假申请的步骤解析。在完成审批人的选择确认后,点击下一步就会进入今天要解析的LeaveDetailsScreen 页面。和之前一样,我们先看看总体结构,然后逐个解析控件的作用和运行逻辑。总体结构熟悉的结构,比上一页还少一个控件。只是控件里出现一个新的类型 - 文本输入控件(12号 和14号)。控件解析这个页面的大多数控件的运行逻辑和上一节对应的控件并没差别,就不再赘述了。来看与之前不同的地方,两个文本输入控件和最后的一个按钮控件。12号控件 - Abou原创 2021-02-09 09:39:00 · 622 阅读 · 0 评论 -
Powerapps的数据处理及交互 - 1 - 发送邮件
实现数据交互应该是一个 App 该有的最基础功能。接下来准备把Powerapps里常用的几种数据交互的实现方式做个集中描述,欢迎一同学习并指正文中错误。今天先聊发送邮件的实现。首先在App里添加三个文本输入控件,分别用来接收收件人、邮件主题和邮件正文的输入。添加一个按钮控件,用作发送按钮。为App添加Outlook连接器添加完成后,在In your app里就能看到添加成功的 Office 365 Outlook连接器。设置按钮的OnSelect属性,输入Office365Outlook原创 2021-02-08 17:17:20 · 3756 阅读 · 2 评论 -
拆解PowerApps - 请假申请 - 8
拆解PowerApps - 请假申请 - 8接着上一节,在选择好日期并点击下一步按钮后,就会跳转到下面这个SelectApproverScreen界面,进行审批人的选择。页面的总体布局如下图所示可以看到,这个页面和上一节选择日期的页面很相似,都是由独立的控件组成,并且文本标签控件居多,感觉运行逻辑应该会比较简单,下面就一起来解析一下。2. 控件解析习惯性的看了一下Screen层面的设置,没发现有什么特别的设置,接下来就直接逐个分析17个子控件。2.1 iconBackApproverScr原创 2021-02-06 22:02:58 · 533 阅读 · 0 评论 -
拆解PowerApps - 请假申请 - 7
上一节我们完成了页面 NewRequestScreen 的解析,那个页面相当于是提交请假申请的第一步,选择要请的假期的类型。本节接下来会沿着这个申请,一步步解析相关的页面。当点选了假期类型后,所跳转到的页面就是下面这个 SelectDatesScreen,让用户选择假期的开始日期和结束日期。1. 页面结构从上图能看出的是,整个页面由多种独立控件组成。从上到下,这个页面涉及到图标、标签、图片、几何形状、日期拾取器和按钮六种控件。2. 控件解析接下来我们就逐个看这些控件和如何结合在一起运行的。首原创 2021-02-06 21:57:22 · 626 阅读 · 0 评论 -
拆解PowerApps - 请假申请 -6
上一节我们完成了HomeScreen 页面的解析,本节我们开始解析接下来的一个新的页面 NewRequestScreen。1. 页面总体结构从上图可用看到,这个页面的主要部分在于下部的 GalleryLeaveType。上部的都是些文本标签,起提示作用。2. 控件解析2.1 iconBackNewRequest - 页面最左上角的一个返回图标。icon = Icon.ChevronLeft //设置图标图案OnSelect = Back() //返回之前的页面,从哪个页面跳转过来就跳...原创 2021-02-05 11:35:26 · 635 阅读 · 1 评论 -
拆解PowerApps - 请假申请 - 5
上一节我们拆解完成了HomeScreen 里结构最大一个控件, GalleryRequests,的解析。 本节我们继续HomeScreen的拆解,争取能在本节完成。紧跟着 GalleryRequests 的还是一个Gallery -- GalleryFilter1. GalleryFilters 的功能从名字上能看出,它是用来过滤数据的。对的,它就是对上面GalleryRequest 里的数据进行过滤,然后按照一定的条件来将过滤出的结果显示到上一节介绍的GalleryRequests控件区域里。这原创 2021-02-04 18:12:12 · 551 阅读 · 1 评论 -
拆解PowerApps - 请假申请 - 4
接上一节,今天我们将集中解析HomeScreen 里最大的一个控件:GalleryRequests。2.5 GalleryRequestsA. 控件的作用:这个控件是用来列示用户当前所提交的请假申请。最初没有申请的时候这个区域是空白的,如下图所示,点击按钮过滤时还会有相应的文本提示。当提交过申请之后,这个区域就会显示用户所提交的申请。用户可以点击下图中的四个按钮来根据申请的状态进行过滤,这个过滤的实现在下一个控件GalleryFilters 里会进行说明。B. Gallery 里的子控原创 2021-02-04 09:37:41 · 1025 阅读 · 2 评论 -
拆解PowerApps - 请假申请 -3
上一节分析了App运行后的主界面 LoginScreen。这一节我们一起来解构请假申请App 的“主页” - HomeScreen。1. HomeScreen 的总体结构如下图所示这个屏幕包含了11个控件,其中有些控件初始状态因为没有数据是看不到的。2. 逐个来看各个控件2.1. 最高层的HomeScreen主要设置了:OnVisible = Concurrent( //同时计算多个函数,语法:Concurrent( Formula1, Formula2 [, .....原创 2021-02-02 15:26:33 · 940 阅读 · 1 评论 -
拆解PowerApps - 请假申请 -2
上一节主要是拆析了App对象里的OnStart 属性设置。本节介绍App 运行后的第一个页面,LoginScreen,内容相对简单些。1、 先来看这个LoginScreen各个控件在页面上的对应关系:2. 来看各个控件的设置LblManagerLogin: - OnSelect = Select(BtnManagerLogin) //重定向到BtnManagerLogin的OnSelect,意思就是点选这个Label就相当于点选了BtnManagerLogin这个按钮(绿框框住的区...原创 2021-02-01 09:51:52 · 939 阅读 · 0 评论 -
拆解PowerApps - 请假申请 -1
从今天开始,我们一起来拆解Powerapps模板库里的一个"请假申请", 看看其构成模块、涉及到的函数、处理逻辑等,希望能从中学到点新东西。1. 首先登录到Powerapps里,利用模板创建出"Leave Request"这个App。2. 看一下App的总体结构等App创建完成后,从左边的树状视图里可以看到App的所有Screen构成。最下面的三个是App的参数配置说明,本文就不加描述了。剩下的就是App运行所需的各个主体Screen(如下面的截屏),接下来我们根据App的运行逻辑来逐个原创 2021-01-28 12:51:24 · 2479 阅读 · 6 评论 -
使用 Powerapps 过程中解决过的问题 - 13 -设置Powerapps的启动界面
今天这个问题怎么说呢?有些问题吧,在你解决了之后你会发现原来不过如此,但在没解决之前却可能是各种挠头。在制作Power Apps的时候,你会想把其中的一个屏幕当成App运行后的第一个界面进行显示。如何设置?方法一、最简单的办法其实就是把这个界面放到树状视图的最上面,Powerapps会自动去选中第一个屏幕来显示。不过有时候可能你会发现 “我已经把这个屏幕放到了最上面,为什么运行App是没有显示?”, 这时候,请检查你当前版本的App是否已经保存并发布为“Live”版本。如下图,在没有任何其它特原创 2021-01-28 10:46:23 · 1890 阅读 · 0 评论 -
一个简单的条码/二维码扫描App
今天有同事在找扫描枪用来盘点资产,需求很简单,就是扫描设备上的条形码形成一个Excel表格。扫描枪已经很久不用,有些故障,同时如何把扫描到的数据生成Excel表格然后存到电脑上也还是个问题,一边看着同事捯饬扫描枪一边做了这么个简单的App。回忆了创建App的步骤,在此分享一下:1. 在OneDrive里创建一个Excel文件,转成表格格式。文件里放了两列数据: 序号(保存扫描的条形码)和链接(这个是后来加上的,保存扫描到的二维码数据)。2. PowerApp里创建一个空白的App3. 添加各原创 2020-12-24 09:25:33 · 2778 阅读 · 1 评论 -
使用 Powerapps 过程中解决过的问题 - 11 - Teams 里看不到所分享的App
问题: 通过安全组分享了一个App,但组内的用户在 Teams 里找不到所分享的App。解决:先让用户通过网页方式访问一次应用,然后在Teams 里就能看到所分享的App了。原因分析: 用户在通过网页访问应用时,会有相关的授权操作。猜测原因在于用户直接用Teams来访问所分享的App时,Teams 客户端的运行方式和网页方式不同,而通过 Teams 客户端无法触发相关的授权操作。(只是根据表象进行的猜测,如有错误,欢迎指正。)...原创 2020-10-19 17:57:50 · 2979 阅读 · 0 评论 -
使用 UI Flow 从O365管理界面下载报告时遇到的问题和解决办法
最近需要定期从O365拉报告做数据分析,在尝试使用 UI Fow 自动抓取数据的过程中遇到了几个问题,在此记录一下并分享解决办法。首先,以电子邮件的用户活动报告为例,介绍一下之前手工拉取报告的操作步骤:1. 登录Admin.microsoft.com2. 在左侧菜单栏里选 Report >> Usage3. 找到Email Activity窗体,点 View more 按钮4. 鼠标点电子邮件用户活动详情的 Export 按钮5. 系统会自动弹出一个新的浏览器原创 2020-10-16 15:20:58 · 500 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 8 - 工作流简介
接上一节,本节来解析和App 相关的工作流。原创 2020-10-15 11:44:10 · 1340 阅读 · 0 评论 -
Power Apps 相关的网站链接(持续更新。。。)
1. 官方的Power Apps函数参考,详细讲解每个函数的作用,语法和使用示例:https://docs.microsoft.com/zh-cn/powerapps/maker/canvas-apps/formula-reference2. 官方的用户论坛,日常遇到的问题可以在这里查找解决办法:https://powerusers.microsoft.com/t5/Power-Apps-Community/ct-p/PowerApps13. 一堆在线学习资料https://powerapps.mi原创 2020-10-14 13:44:22 · 787 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 - 10 - 如何打开扩展名为 msapp 的文件
背景:从网上下载了打包成 zip 文件的App,但尝试导入 app 时发生报错。查看 zip 包,里面是四个扩展名为msapp 的 app, 而这种 msapp文件无法直接导入。解决:先创建一个空白 App, 然后在文件菜单里选择打开,接下来就可以浏览到并打开扩展名为 msapp 的应用了。...原创 2020-10-13 14:04:18 · 1434 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 - 9 - 同一屏幕里处理多数据源组的Form
其实和处理一个Form 一样,关键的两步: 1. 为Form添加数据源,选定Field. 2. 为 Form 设定 Item下面的截屏用颜色区分了两个Form, 分别设置好数据源和Item后,就可以在每个Form里正确显示数据了。...原创 2020-10-12 13:52:19 · 1286 阅读 · 4 评论 -
使用 Powerapps 过程中解决过的问题 - 8 - 为不同用户分别显示自己的内容
可以使用User()函数结合Filter函数来处理,如:Filter(MySource, UserEmailColumn=User.Email())User()函数: https://powerapps.microsoft.com/en-us/tutorials/function-user/Filter()函数: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-filter-lookup.原创 2020-10-12 10:28:34 · 1242 阅读 · 1 评论 -
拆解一个Power Apps模板应用 - 7 - 剩下的几个页面
接上一节,本节继续解析剩下的两个屏幕。六. ConfirmSubmitScreen, 提交成功页面样本App里只有提示信息。感觉最好是再加上几个按钮,比如退出,返回主页之类的。七. ConfirmationDeleteScreen, 确认删除页面后两个控件,图标和Title,很简单略过不提。看看其它三个控件。 取消按钮,CancelButten: OnSelect = Back() /# 设置的是返回上一个屏幕界面 #/ TicketTitle: Text = Ti.原创 2020-10-10 14:08:56 · 481 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 6 - EditTicketFormScreen
五. EditTicketFormScreen类似ViewTicketScreen, 这里也采用了Scrollable样式的页面布局,并且最终只包含了一个卡片。顶层的页面层面: /#在页面初始化显示的时候,设定了几个变量#/OnVisible = UpdateContext({ShowAssignedToGallery:false, AssignedToUserDisplayName:"", AssignedToUserMail:"",EditTicketPriority:SelectedTi.原创 2020-10-09 13:01:59 · 551 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 5 - CreateTicketFormScreen
接上一节,本节继续解析屏幕组件。四. CreateTicketFormScreen总体构成:首先,在CreateTicketFormScreen页面层面, 设置了OnVisible变量 = Set(NewTicketID,Concatenate("AH", Text(Now(),"[$-en-US]yyyymmddhhmmss"))) /# 利用几个函数组合出一个含当前时间信息的文本用来做工单单号。#/然后,来看四组控件。a. 蓝框的标题栏主要是返回按钮:设置了 OnSel...原创 2020-10-08 14:17:46 · 630 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 4 - ViewTicketScreen
接上一节, 本节继续解析屏幕构件。三.ViewTicketScreen屏幕总体构成:这里用到一个新的页面类型,Scrollable 页面。顺便来了解一下这个Scrollable类型的页面:新建一个Scrollable 页面,看看默认的各个模块在页面上的位置(默认的,每个控件的宽度都是占据整行的。为便于识别,我把各个控件的宽度做了调整,以便把背景也就是最高层红色的ScrollableScreen、以及第二层黄色的画布也就是Canvas1露出来)。Add section 在左侧.原创 2020-10-08 14:16:34 · 495 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 3 - MyTicketScreen
接上一节, 本节继续解析屏幕构件。2.MyTicketScreen屏幕总体构成如下:屏幕层面, 该屏幕关联到了一个工作流,用来通过电子邮件发送工单状态(工作流的相关内容会在后面描述)。另外,该屏幕在加载显示的时候执行下面的五个动作(每个动作之间以分号分隔): OnVisible= Refresh(HelpDesk); /#刷新数据源 Helpdesk 列表#/ ClearCollect(AllTickets,HelpDesk); /#清理集合AllTickets...原创 2020-10-07 12:34:36 · 802 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 2 -总体构成及第一个屏幕解析
接上一节,本节我们来具体拆解这个App,看看它的具体构成和运行逻辑。登录 https://make.powerapps.com, 点击左侧的菜单栏里的“应用”, 然后在上节创建的 "Help Desk Tickets"应用的上下文菜单里选择“编辑”。系统会打开一个用来编辑App的新的网页。从左侧的树状视图里,我们可以看到这个App的总体结构。Power Apps 的每个App都是由一个App组件加上N多个屏幕组件构成。App控件用来定义这个App总体的一些参数,比如长度、宽度等,最常用的原创 2020-10-06 13:25:45 · 1342 阅读 · 0 评论 -
拆解一个Power Apps模板应用 - 1 - Help Desk Tickets
前几天花时间拆解分析了一个Power Apps 的模板应用,分享一下,希望能帮助刚接触 Power Apps 的朋友更多的了解Power Apps的构成和运行原理。注: Power Apps 包含在全球版Office 365 企业界产品计划里,截至2020.9, 国内版的O365尚不提供。总体上,本拆解文章将分三部分来进行介绍:1. 生成要拆解的App,简单介绍App所实现的功能2. 拆解App 的各个页面构成,分析运行逻辑3. 对拆解进行总结首先来看第一部分,生成App,了解Ap.原创 2020-10-06 09:45:16 · 836 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 - 7 - 跳转到新页面后,页面里的窗体不显示内容
通常会有两个原因:窗体只设置了数据源,但没有设置 Item属性。 如果窗体对应的数据源没有数据,需用NewForm(), 而不是EditForm()原创 2020-10-05 21:42:47 · 1911 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 - 6 - 应用加载时自动刷新数据源
很简单, 在 Screen 层面, 设置OnVisible = Refresh(<数据源名>)。比如:页面里添加了一个窗体,这个窗体连接了名为 DataSource 的SharePoint列表,则设置 OnVisible = Refresh(DataSource)。原创 2020-10-05 21:41:56 · 1597 阅读 · 4 评论 -
使用 Powerapps 过程中解决过的问题 - 5 - 按组分享App 和 OneDrive里的资源
结合OneDrive存储以及Excel文件来创建App,是Power Apps 很常见的使用方式。场景: 新创建了一个希望提供给公司全员使用的App ,这就涉及到相应的共享权限设定,包括:App 的共享 OneDrive的文件夹共享 Excel 文件的共享处理办法:1. 对于App 的共享:在 Power Apps的创建界面里找到 App,从上下文菜单里点击“分享”,输入包含公司所有员工的邮件组的电子邮件地址,最后点 “分享” 按钮进行分享。这里要注意的一点是:如果要按.原创 2020-10-05 17:37:03 · 1059 阅读 · 2 评论 -
使用 Powerapps 过程中解决过的问题 - 4 - 根据在搜索框中输入文本自动对数据源中不同的字段进行过滤和显示
在解析Power Apps 自动生成的App一文里, 有涉及到类似的问题。在自动生成的App 的浏览页面里,默认的为搜索框提供了下面的代码端:Items =SortByColumns(Filter([@Purchasing], StartsWith(Title, TextSearchBox1.Text)), "Title", If(SortDescending1, Descending, Ascending)) ,这段代码在这个页面的末尾处做过说明,此处就不再赘述。今天再拓展一下, 来实现输入文..原创 2020-10-05 17:33:13 · 1824 阅读 · 6 评论 -
使用 Powerapps 过程中解决过的问题 - 3 - 判断PenInput为空
场景示例:所制作的App里添加了画笔输入控件(名为PenInput1)用来给用户进行签字,并且是必需的输入项。也就是说,在提交时窗体时需要先判断用户是否已经签字。解决步骤:1. 在 App 层面一个布尔变量用来存储状态值,比如: 设置 OnStart =Set(varPenInputBlank, true), 设置变量的初始值为 true。2. 在画笔输入控件上,设置: OnSelect = Set(varPenInputBlank, false)。也就是一旦用户有签字动作,就把变量值设置为原创 2020-09-30 12:24:22 · 911 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 - 2 - 设定某个控件只针对特定用户显示
应用场景: 利用Power Apps创建了一个需要发布给公司全员的应用,应用的主页上放置了普通用户入口和管理员入口。而管理员入口的按钮只应该让特定的管理员看到。解决办法:设定管理员入口按钮的 Visible = Lower(User().Email) = "admin1@c.c")提示: Power Apps 对字符的大小写敏感,建议通过 Lower() 函数来把用户的电子邮件地址转换成小写。这也算是Power Apps的一个坑,一不留神掉进去的话,怎么查都感觉逻辑是对的,结果很可能就.原创 2020-09-29 18:05:12 · 1081 阅读 · 0 评论 -
使用 Powerapps 过程中解决过的问题 -1 - 用 IsBlank() 来检查必填项是否填写了数值
在使用Power Apps 创建应用时,IsBlank() 函数是经常用到的函数。最常见的用是在窗体的提交按钮上,在提交窗体之前,先检测某些文本框是否按照要求输入了数据。可以设置提交按钮的 OnSelect = If ( IsBlank(文本框一) Or IsBlank(文本框二) , Navigate(必填项未填写完成页面) ,SubmitForm(要提交的窗体名) )。...原创 2020-09-29 14:25:45 · 1699 阅读 · 1 评论 -
Power Apps 一个实际案例 - 4 - 实现归还管理
接上一节的出借管理,本节我们一起来实现归还管理。可以看到归还表单和出借表单很相似,因此我们直接通过复制出借屏幕来制作归还屏幕。鼠标右键点击BorrowMgmt, 然后点击 "复制屏幕" 命令。把复制出的屏幕重命名为ReturnScreen, 同时可以看到,系统会自动将新屏幕里的各个控件通过添加数字后缀的方式来命名,以避免和之前屏幕里的控件重复。对ReturnMgmt屏幕下的各个控件进行布局调整以及必要的修改,比如,由于归还屏幕是从借出屏幕复制过来的,之前文字里的出借需要改为归还、字段里的原创 2020-09-26 20:24:50 · 2113 阅读 · 1 评论 -
Power Apps 一个实际案例 -3 - 实现出借管理
接上一节,本节将介绍出借管理的实现。直接进入主题:出借管理表单的各个字段已经在上一节统一添加到了Excel 文件中,本节的基本思路是通过一个列表页面来显示所有设备借用申请,点击某个申请则进入这个申请的具体管理页面。1. 添加用来显示借用申请列表的页面,关联好数据源,设置好布局。1.1 插入菜单的新下直接选择列表类型屏幕。1.2修改一下新屏幕的名字以及其下的TemplateGalleryList1,便于以后的识别。1.3 和上一节相似的操作,把BorrowGalleryList .原创 2020-09-26 00:56:31 · 3586 阅读 · 1 评论 -
Power Apps 一个实际案例 -2 - 实现申请功能
今天我们一起来具体实现纸质表单的电子化。1. 准备数据源如上一节分析的, 我们将采用Excel 表来存储表单里的数据,同时利用OneDrive来存储签名图片。因此,我们先按照纸质表单里的内容,在OneDrive 里创建一个Excel文件,并添加各个数据列。结果如下图:关于这个Excel 表,有几点要说明和注意的:文件名一定要小写(之前做App时,文件名有大写字母,结果无法生成用来存储签字图片的文件夹) 用来存储签字图片的列名要加 [image]后缀,如上图的H 列。 定义好各列后,需原创 2020-09-24 14:28:39 · 9075 阅读 · 10 评论 -
Power Apps一个实际案例 -1 - 需求分析
今天开始,我们将通过一个实际案例来看如何将日常工作中的一个纸质表单通过Power Apps 实现电子化。需求很简单,就是把下面的表单利用Power Apps 来实现电子化。分析表单:表单总体分三部分,申请、出借和归还。接下来我们创建App时也基本遵循这样的结构划分,分三步来实现。 表单中存在用户签名,考虑通过Excel 加 OneDrive来实现。Excel用来保存每条记录,OneDrive用来保存签字图片。 没有审批等涉及到工作流的部分,因此不需要考虑采用Power Automatio原创 2020-09-22 14:56:14 · 3850 阅读 · 1 评论