列名包含空格的表不适用于Power Apps中的Filter功能



我有一个强大的应用程序,它正在使用一个sharepoint表,其中一列包含一个空格,如下所示:"项目名称"。使用我的筛选函数(见下文(,如果我将列名(和筛选函数(更改为不包含任何空格,我就可以从表中返回行:"ProjectName"。我尝试过在filter函数中用单引号和双引号封装列名,但仍然不起作用。

当我使用"mySearchTextBox"字段搜索以给定文本开头的行(使用不带空格的表列名,在本例中为"ProjectName"(时,此函数返回行:

SortByColumns(
Filter(
[@'myTable']; 
StartsWith(ProjectName; Text(mySearchTextBox.Text))
)
; "Title"
; If(SortDescending1; Descending; Ascending)
)

但是,当将表列名更改为包含空格时,在本例中为"项目名称",并且在筛选函数中没有引号,则不会返回任何行:

SortByColumns(
Filter(
[@'myTable']; 
StartsWith(Project Name; Text(mySearchTextBox.Text))
)
; "Title"
; If(SortDescending1; Descending; Ascending)
)

也不是这样(将表列名封装在单引号中(:

SortByColumns(
Filter(
[@'myTable']; 
StartsWith('Project Name'; Text(mySearchTextBox.Text))
)
; "Title"
; If(SortDescending1; Descending; Ascending)
)

也不是这样(用双引号封装列名(:

SortByColumns(
Filter(
[@'myTable']; 
StartsWith("Project Name"; Text(mySearchTextBox.Text))
)
; "Title"
; If(SortDescending1; Descending; Ascending)
)

一旦在Sharepoint列表中创建了列,就不能更改其内部名称。PowerApps使用此内部名称。为了解决这个问题,您需要创建一个新列。

示例:

  • 从Sharepoint列表中,单击Gear图标,然后单击List Settings
  • 选择有问题的列
  • 查看URL
  • 您应该看到内部名称中有一个空格
  • 即使您更改了列的显示名称,也无法更改内部名称

更新:

  • 看起来Sharepoint最终修复了默认行为
  • 现在,如果您创建一个包含空格的列名,Sharepoint将删除该空格
  • 它曾经粘贴URL编码的占位符(它是什么,%x02之类的(
  • 如果它是一个旧的Sharepoint列表,则很可能是这种情况

对于其他遇到同样问题的人。最终对我们起作用的是:从共享点点击表格,转到"列表设置"|"高级设置"/"列表体验",并将值更改为"新建",而不是"默认"(就像在我们的表格中一样(。

最新更新