我正在设计基于SharePoint Online列表的资产管理PowerApp。它采用诸如项目类型(例如笔记本电脑,服务器或打印机等)之类的字段,并允许用户当前基于扫描的条形码进行过滤。
但是,我现在创建了一个菜单屏幕,用户可以选择要搜索便携式计算机还是服务器。这会根据他们的选择将他们导航到另一个屏幕。我想根据AssetType
字段中的值过滤数据源。这是笔记本电脑,服务器或打印机的多选字段
BrowseGallery的当前公式为SortByColumns(Filter(EquipmentInventory, StartsWith(Barcode, BarcodeScanner1.Value)), "Title", If(SortDescending1, Descending, Ascending))
我尝试过SortByColumns(Filter(EquipmentInventory.ItemType == "Laptop", StartsWith(Barcode, BarcodeScanner1.Value)), "Title", If(SortDescending1, Descending, Ascending))
还有
SortByColumns(Search([@AssetType], BrowseScreen_SearchInput.Text in AssetType && AssetType.Value = "Laptops", "AssetType", If(SortDescending1, Descending, Ascending))
尝试过滤数据源以仅显示“笔记本电脑”,但出现错误的无效参数。
一旦我可以使用它,预期的结果是在每个屏幕上都有一个过滤器,在笔记本电脑的屏幕上显示笔记本电脑,等等。
我希望每个屏幕都显示其资产的BrowseGallery,然后允许用户仍基于条形码进行搜索。
任何帮助都将不胜感激!
答案 0 :(得分:0)
对于“过滤器”公式,请尝试以下操作:Filter(EquipmentInventory, ItemType = 'Name of screen 1 item type selector'.Selected.ItemType.Value)
您看到的错误是因为公式试图比较具有不同类型的两个项目。为了测试这一点,我通常喜欢在屏幕上添加标签并测试比较的每个部分,以确保值符合我的期望。例如,将标签文本设置为ItemType和“屏幕1项目类型选择器的名称” .Selected.ItemType.Value部分,并确保它们显示相同的值。
一旦过滤器开始工作,SortByColumns部分也应该工作!