Thank you for taking the time to read my question.
I had this code for my Gallery so that I can search my Dataverse table and be able to sort it by column based on what column a user clicks on.
I thought I'd try to clean it up and used a With()... but now I get a not responding, do I want to wait for PowerApps to finish message from my browser. Why is using the With() slower than my much longer code?
Original Code:
If(
IsBlank(varBarStartDate),
If(
And(
tCol = Blank(),
tSort = Blank()
),
Search(
Filter(
Assets,
Region in Split(
varUserRegion,
","
)
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
And(
tCol = "ProductName",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
ProductName,
Ascending
),
And(
tCol = "ProductName",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
ProductName,
Descending
),
And(
tCol = "CITag",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
CITag,
Ascending
),
And(
tCol = "CITag",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
CITag,
Descending
),
And(
tCol = "M3AssetNum",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
M3AssetID,
Ascending
),
And(
tCol = "M3AssetNum",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
M3AssetID,
Descending
),
And(
tCol = "Site",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssetSite,
Ascending
),
And(
tCol = "Site",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssetSite,
Descending
),
And(
tCol = "AssignedTo",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssignedTo,
Ascending
),
And(
tCol = "AssignedTo",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssignedTo,
Descending
),
And(
tCol = "AssignedStatus",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssetStatus,
Ascending
),
And(
tCol = "AssignedStatus",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
AssetStatus,
Descending
),
And(
tCol = "Category",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
Category,
Ascending
),
And(
tCol = "Category",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
Category,
Descending
),
And(
tCol = "WarrExp",
tSort = "Asc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
WarrantyExpireDate,
Ascending
),
And(
tCol = "WarrExp",
tSort = "Desc"
),
Sort(
Search(
Filter(
Assets,
Region = varUserRegion
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
),
WarrantyExpireDate,
Descending
)
),//After here then filter from the column chart
If(
And(
tCol = Blank(),
tSort = Blank()
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "ProductName",
tSort = "Asc"
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "ProductName",
tSort = "Desc"
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "CITag",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
CITag,
Ascending
),
And(
tCol = "CITag",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
CITag,
Descending
),
And(
tCol = "M3AssetNum",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
M3AssetID,
Ascending
),
And(
tCol = "M3AssetNum",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
M3AssetID,
Descending
),
And(
tCol = "Site",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetSite,
Ascending
),
And(
tCol = "Site",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetSite,
Descending
),
And(
tCol = "AssignedTo",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssignedTo,
Ascending
),
And(
tCol = "AssignedTo",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssignedTo,
Descending
),
And(
tCol = "AssignedStatus",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetStatus,
Ascending
),
And(
tCol = "AssignedStatus",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetStatus,
Descending
),
And(
tCol = "Category",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
Category,
Ascending
),
And(
tCol = "Category",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
Category,
Descending
),
And(
tCol = "WarrExp",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
WarrantyExpireDate,
Ascending
),
And(
tCol = "WarrExp",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
WarrantyExpireDate,
Descending
)
)
)
New code using With()
With(
{
SearchData: Search(
Filter(
Assets,
Region in Split(
varUserRegion,
","
)
),
AssetSearch.Text,
"cra98_assettype",
"cra98_assetstatus",
"cra98_assignedto",
"cra98_category",
"cra98_citag",
"cra98_manufacturername",
"cra98_notes",
"cra98_osname",
"cra98_productname",
"cra98_purchasedfrom",
"cra98_serialnumber",
"cra98_assetsite",
"cra98_assetstatus",
"cra98_warrantyinfo",
"cra98_m3assetid"
)
},
If(
IsBlank(varBarStartDate),
If(
And(
tCol = Blank(),
tSort = Blank()
),
SearchData,
And(
tCol = "ProductName",
tSort = "Asc"
),
Sort(
SearchData,
ProductName,
Ascending
),
And(
tCol = "ProductName",
tSort = "Desc"
),
Sort(
SearchData,
ProductName,
Descending
),
And(
tCol = "CITag",
tSort = "Asc"
),
Sort(
SearchData,
CITag,
Ascending
),
And(
tCol = "CITag",
tSort = "Desc"
),
Sort(
SearchData,
CITag,
Descending
),
And(
tCol = "M3AssetNum",
tSort = "Asc"
),
Sort(
SearchData,
M3AssetID,
Ascending
),
And(
tCol = "M3AssetNum",
tSort = "Desc"
),
Sort(
SearchData,
M3AssetID,
Descending
),
And(
tCol = "Site",
tSort = "Asc"
),
Sort(
SearchData,
AssetSite,
Ascending
),
And(
tCol = "Site",
tSort = "Desc"
),
Sort(
SearchData,
AssetSite,
Descending
),
And(
tCol = "AssignedTo",
tSort = "Asc"
),
Sort(
SearchData,
AssignedTo,
Ascending
),
And(
tCol = "AssignedTo",
tSort = "Desc"
),
Sort(
SearchData,
AssignedTo,
Descending
),
And(
tCol = "AssignedStatus",
tSort = "Asc"
),
Sort(
SearchData,
AssetStatus,
Ascending
),
And(
tCol = "AssignedStatus",
tSort = "Desc"
),
Sort(
SearchData,
AssetStatus,
Descending
),
And(
tCol = "Category",
tSort = "Asc"
),
Sort(
SearchData,
Category,
Ascending
),
And(
tCol = "Category",
tSort = "Desc"
),
Sort(
SearchData,
Category,
Descending
),
And(
tCol = "WarrExp",
tSort = "Asc"
),
Sort(
SearchData,
WarrantyExpireDate,
Ascending
),
And(
tCol = "WarrExp",
tSort = "Desc"
),
Sort(
SearchData,
WarrantyExpireDate,
Descending
)
),//After here then filter from the column chart
If(
And(
tCol = Blank(),
tSort = Blank()
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "ProductName",
tSort = "Asc"
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "ProductName",
tSort = "Desc"
),
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
And(
tCol = "CITag",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
CITag,
Ascending
),
And(
tCol = "CITag",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
CITag,
Descending
),
And(
tCol = "M3AssetNum",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
M3AssetID,
Ascending
),
And(
tCol = "M3AssetNum",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
M3AssetID,
Descending
),
And(
tCol = "Site",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetSite,
Ascending
),
And(
tCol = "Site",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetSite,
Descending
),
And(
tCol = "AssignedTo",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssignedTo,
Ascending
),
And(
tCol = "AssignedTo",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssignedTo,
Descending
),
And(
tCol = "AssignedStatus",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetStatus,
Ascending
),
And(
tCol = "AssignedStatus",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
AssetStatus,
Descending
),
And(
tCol = "Category",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
Category,
Ascending
),
And(
tCol = "Category",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
Category,
Descending
),
And(
tCol = "WarrExp",
tSort = "Asc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
WarrantyExpireDate,
Ascending
),
And(
tCol = "WarrExp",
tSort = "Desc"
),
Sort(
Filter(
Assets,
Region in Split(
varUserRegion,
","
),
AssetType = varBarType,
WarrantyExpireDate >= varBarStartDate,
WarrantyExpireDate <= varBarEndDate
),
WarrantyExpireDate,
Descending
)
)
)
)
I am fixing it up so its easier to read but also, so that I can add one more search, on a date field... not sure if that's possible
Thanks