Power App学习笔记以及基础项目管理demo
最近学习了一点Power App,感觉挺有意思。配置式组件开发。浅浅记录一下自己实现的项目管理系统(即Excel数据的增删改查)关于函数的一点皮毛认识。
效果图
筛选数据
编辑
详情
数据源
PowerApp
网址:Power App
开始:
基本函数:
我是跟着B站一个up主的视频学着写的这个demo,30分钟快速开发项目管理系统,讲的比较详细,虽然有些地方和我本地未必对应的上。也咨询了做这方面的同事,最后还是成功实现了。
开发
基本上是拖拽式组件开发,样式并不能像前端开发那样灵活设计。下面主要说一下函数方面,以及主要的组件配置
筛选项
正常手动配置可以这样:
Table({Value:"All"},{Value:"是"},{Value:"否"})
效果为:
这个的含义是,从ProjectList
这个数据源中,提取ProjectNumber
作为数据,我这里用来当作筛选下拉了。然后再使用上面的table
增加了一个All
的选项
Table({Value:"All"},Distinct(ProjectList,ProjectNumber)
查询按钮
理解为定义了一个查询出来的数据叫Search
,过滤条件为上方各个筛选条件Selected
的值或者Input
输入的值,ProjectNumberDropdown
、ProjectStatusDropdown
、ProjectStepDropdown
、ProjectNameInput
均为自定义名义的组件名字。
ClearCollect(Search,Filter(ProjectList,(ProjectNumber in ProjectNumberDropdown.Selected.Value||ProjectNumberDropdown.Selected.Value="All")&&(Status=ProjectStatusDropdown.Selected.Value||ProjectStatusDropdown.Selected.Value="All")&&(Progress=ProjectStepDropdown.Selected.Value||ProjectStepDropdown.Selected.Value="All")&&(ProjectName=ProjectNameInput.Text||ProjectNameInput.Text="请输入"||ProjectNameInput.Text="")))
重置按钮
Reset
所有的下拉筛选组件,然后Select
,相当于帮你点击了一下查询按钮,执行了查询操作。SearchButton
是查询按钮的名字
Reset(ProjectNumberDropdown)&&Reset(ProjectStatusDropdown)&&Reset(ProjectStepDropdown)&&Reset(ProjectNameInput);Select(SearchButton)
列表
这里的Items
即为数据
列表是用一个container
里面放了一个gallery
实现的。所以值为上方的Search
(gallery被我清空了,手动实现的这些字段显示的样式)
编辑
点击编辑按钮的时候,触发EditForm
,并Navigate
跳转到详情页面,Set
的意思是,自定义了一个变量isEdit
,值为true
,用于标记是编辑操作还是查看操作
EditForm(Form1);Navigate(Screen2);Set(isEdit,true)
查看
点击查看按钮,触发ViewForm
,并Navigate
跳转到详情页面,Set
的意思是,自定义了一个变量isEdit
,值为false
,用于标记是编辑操作还是查看操作
ViewForm(Form1);Navigate(Screen2);Set(isEdit,false)
删除
点击删除按钮,触发Remove
,再次点击SearchButton
,触发查询
Remove(ProjectList,ThisItem);Select(SearchButton)
新建
点击新建按钮,ResetForm
先重置表单,然后再NewForm
初始化一个新的表单,最后跳转
ResetForm(Form1);NewForm(Form1);Navigate(Screen2)
详情页
数据源
数据绑定为Gallery
点击的数据
提交
点击提交按钮触发SubmitForm
,触发查询数据,自动跳转前页面
SubmitForm(Form1);ClearCollect(Search,ProjectList)
控制disable
如果isEdit
为true,那么模式为Edit
,否则为Disabled
,这里要返回值,而不是返回布尔
If(isEdit,DisplayMode.Edit,DisplayMode.Disabled)
form表单的提交之后,提示成功,并且跳转
Notify("提交成功",NotificationType.Success);Navigate(Screen1)
重置
ResetForm(Form1);NewForm(Form1)
具体页面实现以及代码编写可以看那个up主的视频,这里只是我的一点学习笔记,如有不对的地方,还请谅解。