Power App:如何在公式中使用文本值作为列名?
解决方法
在Power Apps中,没法直接把文本字符串当作列名用在Filter的条件里,但可以通过两种实用方法实现你的需求:
方案1:用With+动态列访问(推荐)
先把当前用户的部门名称存起来,再用ThisRecord[列名字符串]的语法动态访问列值,让Filter正确识别文本对应的列:
With( { userDept: LookUp('Employee Departments','Employee Email' = Office365Users.MyProfileV2().mail,Department) }, Filter( 'Records for Review', ThisRecord[userDept] = false ) )
比如你的例子里,userDept会拿到"Sales",ThisRecord[userDept]就等价于直接写Sales,最终筛选出Sales = false的Proj2记录。
方案2:用Switch枚举部门列(适合部门固定的场景)
如果部门数量不多且不会频繁变动,直接用Switch映射每个部门对应的列判断,可读性更高:
Filter( 'Records for Review', Switch( LookUp('Employee Departments','Employee Email' = Office365Users.MyProfileV2().mail,Department), "Sales", Sales = false, "Marketing", Marketing = false // 可继续添加其他部门的判断逻辑 ) )
原代码失效的原因
你之前写的代码:
Filter('Records for Review',LookUp('Employee Departments','Employee Email' = Office365Users.MyProfileV2().mail,Department) = false)
实际是在判断部门名称这个字符串是否等于false(比如判断"Sales" = false),字符串和布尔值永远不相等,自然筛选不到任何记录。
内容的提问来源于stack exchange,提问作者Jaden Polston
相关产品推荐
相关产品推荐

