拆解PowerApps - 请假申请 -3

2023-10-28 08:51
文章标签 申请 拆解 请假 powerapps

本文主要是介绍拆解PowerApps - 请假申请 -3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一节分析了App运行后的主界面 LoginScreen。

这一节我们一起来解构请假申请App 的“主页” - HomeScreen。

1. HomeScreen 的总体结构如下图所示
这个屏幕包含了11个控件,其中有些控件初始状态因为没有数据是看不到的。

2. 逐个来看各个控件

2.1. 最高层的HomeScreen  

主要设置了:OnVisible =  // OnVisible,顾名思义,这里的设置就是用来定义页面在展示出来的时候需要执行的一些动作。 
Concurrent(     //同时计算多个函数,语法:Concurrent( Formula1, Formula2 [, ...])
    Set(_editingRequest, false),    //Concurrent 的第一个函数, 用Set 为一个变量设置布尔值为 false。
    Set(_reviewRequest, false),    //Concurrent 的第二个函数,用Set 为一个变量设置布尔值为 false。
    If(!_managerView,   // 利用 IF 条件来判断当前的界面是员工视图还是主管视图,换句话说也就是判断登录人是一名员工还是一名主管。 这里的 "_managerView" 在第二节介绍的两个按钮的属性里进行过赋值。当用户点击按钮时,相应的值就带过来了并在此发挥作用。
        Set(_requesterBalanceRecord, LookUp(Balance,  Year = Text(Year(Now())) && EmployeeEmail = _myProfile.UserPrincipalName  ));   // 这里用到了 LookUp 函数,用来从表中查找记录。语法: LookUpTableFormula [, ReductionFormula ] )。
         // LookUp 的第一个参数 Balance, 就是第一节提到的保存在 OneDrive里那个 Data.xlsx 文件里的一个 工作表。这一句在当前视图不是主管视图是运行,用来将LookUp查到的员工假期天数暂存到_requesterBalanceRecord变量里。

        ClearCollect(RequesterBalanceCollection,
                    {type:"Vacation", balance:Value(_requesterBalanceRecord.Vacation) - Value(_requesterBalanceRecord.VacationUsed)},
                    {type:"Sick Leave", balance:Value(_requesterBalanceRecord.Sick) - Value(_requesterBalanceRecord.SickUsed)},
                    {type:"Floating Holiday", balance:Value(_requesterBalanceRecord.Floating) - Value(_requesterBalanceRecord.FloatingUsed)},
                    {type:"Jury Duty", balance:Value(_requesterBalanceRecord.JuryDuty) - Value(_requesterBalanceRecord.JuryDutyUsed)},
                    {type:"Bereavement", balance:Value(_requesterBalanceRecord.Bereavement) - Value(_requesterBalanceRecord.BereavementUsed)})
        )   //Concurrent 的第三个函数。 一个If 语句, 目的是: 如果不是主管视图,就从后台读取员工的假期天数进行显示。如果是主管视图,就计算员工当前可用的假期天数并存储到RequesterBalanceCollection集合里。
)  //结束Concurrent 语句。 

2.2 MakeFirstRequestGroup (上图左侧的一个隐藏的方框区域) 

这个控件的作用是在用户第一次运行App时,显示下面这样一个提示性的界面让用户来创建新的申请。

从这个控件的名字可以看出,它是几个控件的组合(Group)。 
在树状视图里展开它后,可以看到它里面包含了三个控件,前两个组合在一起就是上图里那个蓝色的加号图标,第三个Label7 就是提示文字“Make your first leave request!”

通过将多个控件组合在一起,我们选中控件组进行属性设置,来控制整个组合的一些特性。比如,这里对组合控件设置了:
Visible = (_requestTypeFilter = "All") && !GalleryRequests.Visible && !_managerView   //仅当_requestTypeFilter的值为All 并且GalleryRequests 不可见并且 !_managerView 值为真这三个条件同时满足时,这个组合控件才可见。这里使用了 && 逻辑运算符(表示And)和 ! 运算符(表示 Not)。对控件组设置一次 Visible属性,里面的所有子控件都会得到同样的设置。

- 控件 icon2_1, 设置了 OnSelect = Navigate(NewRequestScreen, None)     //点击后跳转到 NewRequestScreen 窗口。
- 控件 Label7, 设置了 Text = “Make your first leave request! ”     //也就是所显示的提示文字
- 控件 Circle1_1, 用来美化那个 “ + ” 图标,只是设置了一些 Design方面的参数,没有Action的自定义设置。

2.3 LabelNoRequest

这个控件是一个文本提示标签,用于在用户点击了申请类型后显示对应的提示信息。

这个控件比较有趣的地方在于,它只在用户点选的申请类型没有数据时才显示,并且会根据用户点击的按钮组合出不同的提示文本。如上图,点击的是Approved 按钮,组合出来的文字就是 No approved requests.
相应的就需要设置两个属性来对这个控件进行控制。
a. Visible = !GalleryRequests.Visible && GalleryFilters.Selected.Filter <> "All"      //控件是否显示由两个条件决定: 1. GalleryRequests.Visible 的值, 2. GalleryFilters.Selected.Filter <> "All" (点击的按钮不是 All) 。这里涉及的两个控件 GalleryRequests 和 Gallery Filter 就是下面马上要拆解的控件。
b. Text = "No " &Lower(_requestTypeFilter)" requests"     //利用连接符 & 连接三个字符串来组合出最终的提示文本。其中变量 _requestTypeFilter 后续会提到,这里使用了 Lower() 函数来将其转换成全部小写。

2.4 Rectangle1_1 
这个控件只是用来做界面不同区域的分割,设置好Design相关的属性就行。

好了,今天就先到这里,接下来的内容会更丰富、更精彩。

附:本节用到的函数和运算符
LookUp, Concurrent, Set, ClearCollect, If, Lower, &&, & , <> 

--------------  本节结束, 下一节继续解析 HomeScreen -----------------

 

这篇关于拆解PowerApps - 请假申请 -3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292103

相关文章

Android6.0以上权限申请

说明: 部分1:出自:http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响。惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引

[项目][CMP][直接向堆申请页为单位的大块内存]详细讲解

目录 1.系统调用 1.系统调用 Windows和Linux下如何直接向堆申请页为单位的大块内存: VirtualAllocbrk和mmap // 直接去堆上按页申请空间static inline void *SystemAlloc(size_t kpage){#ifdef _WIN32void *ptr = VirtualAlloc(0, kpage << 13,

在幼儿园管理系统中,会议管理申请会议修改模块:多个与会人员的回显和修改(编辑)!

在幼儿园管理系统中,会议管理>申请会议>修改模块:多个与会人员的回显(复选框)和修改(编辑)!在处理与会人员的回显(复选框)和修改(编辑)出点问题。无法正确的回显(复选框)出来与会人员和修改(编辑)。 最后终于解决:修改(编辑)的思路是:先把原来的该会议记录下的所有与会人员删除,在添加,即可实现修改(编辑)功能。回显(复选框)的思路是:设置一个flag,判断一下是否要选中(复选框),即可实现

在幼儿园管理系统中,会议管理申请会议模块:添加会议记录(提交表单)的时候报:404错误!

在幼儿园管理系统(spring MVC)中,会议管理>申请会议模块:添加会议记录的时候报:404错误!不知道为啥找不到,一开始感觉一头雾水,怎么会出现404页面找不到错误那,又检查action,controller等这也没错啊!怎么出现404错误那。经过询问和查找,终于找到原因了。 原因是:添加的有时间字段。 代码: @InitBinder public void in

河南消防工程设计专项资质申请条件

一、企业基本条件 独立法人资格:企业必须具有独立法人资格,即依法成立的企业法人。 注册资本:企业注册资本应符合资质标准中的要求。例如,在申请乙级资质时,企业注册资本不少于100万元人民币。 经营场所:企业应有固定的经营场所,并具备必要的办公条件和技术设施。 经营范围:企业营业执照上的经营范围应包含消防设施工程设计等相关业务。 技术条件 技术负责人:技术负责人应具有不少于6年的消防设施工

深入拆解 Java 虚拟机 】Exception异常笔记

【深入拆解 Java 虚拟机 】Exception异常笔记 try-with-resource语法糖finally try-with-resource语法糖 try后对象的close方法都会被运行。 package com.exception.demo;public class Foo implements AutoCloseable {private final Strin

胎牛血清试用申请

胎牛血清(FBS)是一种性状、外观 浅黄色澄清、无溶血、无异物稍粘稠液体,取自5-8月胎龄牛胚胎中的胎血。胎牛还未接触外界,血清中所含的抗体、补体等对细胞有害的成分最少,因此胎牛血清是品质最高的。当血清内毒素含量≤10EU/ml时,则为特级胎牛血清。那么,你知道如何进行胎牛血清试用申请吗? 胎牛血清是一种常用的细胞培养基添加剂,可以提供细胞生长所需的营养物质和生长因子,有助于促进细胞的增殖和存活

3000亿超长期特别国债资金申请流程及注意事项

2024年政府工作报告中指出,为系统解决强国建设、民族复兴进程中一些重大项目建设的资金问题,从2024年开始拟连续几年发行超长期特别国债,专项用于国家重大战略实施和重点领域安全能力建设,2024年先发行1万亿元。 发行意义 发行使用超长期特别国债是国家重大的政策举措!超长期特别国债将用于“两重”建设,即:“国家的重大战略实施”和“重点领域的安全能力建设”。这是党中央、国务院着眼强国建设、民

用简易代码拆解物联网IoT平台骨架

一、功能实现 完成平台基础数据配置,MQ服务,数据流转(网关读取设备数据,自定义报文上传,触发器判断,自定义报文下发,网关写入设备数据) JSON串转换过程 网关发送编码 {"ts":"2024-09-05T03:03:40.174Z","d":[{"tag":"40105","value":50}]}IoT接收解码 {"temperature":50}IoT触发规则(写入设备) {"

免费SSL证书大全,附阿里云、腾讯云免费SSL证书申请攻略

免费SSL证书大全,附阿里云、百度云、腾讯云免费SSL证书申请攻略 摘要:随着这两年SSL证书的普及,使用了SSL证书启用了HTTPS协议的网站越来越多了,最近四座网为了把网站也开启全站HTTPS,特意申请了一个免费的SSL证书用了起来。同时也在百度云、阿里云、腾讯云三大国内的云服务平台都申请了免费SSL证书,以体验一下每个平台的免费SSL证书的差别。 ssl证书 随着这两年SSL证书的