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主的视频,这里只是我的一点学习笔记,如有不对的地方,还请谅解。