我正在开发 Power Apps Canvas 应用程序,并创建了表格和表单屏幕。两者都连接到同一个 Excel 数据源 SacStokTable,该数据源最初有 2000 行数据。我将应用配置为在添加新记录时自动生成 Power Apps ID。
在搜索框中,我使用此过滤器来搜索“Malzeme”列中的值:
Set(filterSacStokYonetimi, SacStokYonetimiArama2.Value);
在表的 Items 属性中,我应用了以下公式来根据搜索文本过滤数据:
Filter(SacStokTable, Lower(Text(Trim(filterSacStokYonetimi))) in Malzeme)
这非常有效,我可以根据 Malzeme 列在 2000 行数据中进行搜索。
但是,在使用“新建”按钮通过表单添加新材料后,我检查了 Excel 表格并确认新材料已添加 Power Apps ID。问题是我无法再使用上面的 Filter 公式搜索新添加的素材,但是如果我使用这样的搜索功能,我可以找到它:
Search(SacStokTable, filterSacStokYonetimi, Malzeme)
问题是使用搜索可以找到新添加的数据,但使用过滤时却不会显示新条目。搜索适用于新数据,但在过滤时不会返回现有的 2000 行。
为什么会发生这种情况,如何确保新旧数据都可以使用 Filter 进行搜索?
好吧,这很奇怪,但它有效。
我意识到:
Filter(SacStokTable, Lower(Text(filterSacStokYonetimi)) in Text(Malzeme))
Filter(SacStokTable, Lower(Text(filterSacStokYonetimi)) in Malzeme)
命令返回不同的结果。第一个是在表连接之前返回先前添加的记录。第二个是通过表单提交返回新添加的记录。
表单中的字段设置为文本格式。 Excel 表格的列也是文本格式。 我没有手动更改任何设置,但所有内容似乎都是文本格式,我不知道为什么它会起作用。