Power Apps中如何将指定语法声明为变量以在应用中复用?
Power Apps中复用查询语句的实现方案
我正在开发一个用于SQL数据库表记录增删改查的简易Power Apps应用,当前某网格的OnSelect属性使用以下代码:
If( IsBlank( LookUp( tmpSearch, ID = ThisItem.ID ) ), Collect( tmpSearch, Filter(ShowColumns('app1.Search',ID,Profile_id,Tag,GUID,Created_date,Updated_date), Profile_id = gal_Profile.Selected.ID) ) ); UpdateIf( tmpSearch, ID = ThisItem.ID, { Tag: txtInput.Value, Updated_date: Now() } )
我希望把下面这段查询语句声明为可复用的变量,避免后续修改、新增或移除列时,需要逐一调整所有相关代码:
Filter(ShowColumns('app1.Search',ID,Profile_id,Tag,GUID,Created_date,Updated_date), Profile_id = gal_Profile.Selected.ID)
实现方案
定义可复用变量
推荐在应用的OnStart属性或者当前屏幕的OnVisible属性中设置全局变量,这样整个应用或当前屏幕的控件都能直接引用:Set( colFilteredSearch, Filter(ShowColumns('app1.Search',ID,Profile_id,Tag,GUID,Created_date,Updated_date), Profile_id = gal_Profile.Selected.ID) )如果需要随
gal_Profile选中项动态更新结果,把这段代码放到gal_Profile的OnSelect属性中,确保变量值随选中项同步变化。替换原代码中的重复语句
修改原网格的OnSelect代码,直接使用定义好的变量:If( IsBlank(LookUp(tmpSearch, ID = ThisItem.ID)), Collect(tmpSearch, colFilteredSearch) ); UpdateIf( tmpSearch, ID = ThisItem.ID, { Tag: txtInput.Value, Updated_date: Now() } )后续复用与维护
其他网格、按钮或控件需要用到这段查询结果时,直接调用colFilteredSearch即可。后续需要调整列字段、过滤条件时,只需要修改变量定义处的代码,所有引用位置会自动同步更新,无需逐一修改。
内容的提问来源于stack exchange,提问作者Kevin Liew
相关产品推荐
相关产品推荐

