Based on another post by @Pointer, I was playing with creating a Filtered View using a Manual Deep Link.
I can create an action that navigates to my view like so:
LINKTOFILTEREDVIEW("Inventory", IN([Product Code], LIST(โ100001โ,โ100002โ, "100003")) )
And I get the expected filtered view:
However, when I attempt to create the same Deep Link manually (see below) I get ALL rows, not the filtered view - even though the Expression tester seems to imply the filter is working.
CONCATENATE("#view=Inventory&filter=", ENCODEURL(IN([Product Code], LIST(โ100001โ,โ100002โ, "100003"))))
What am i doing wrong?
Solved! Go to Solution.
Ok, got it! This isnโt really supported for a manual Deep Link.
A Feature Request to auto-open QuickEdit from the โnewโ view navigation functions is the way to go.
Thanks!!
Can you let me know why youโd prefer not to use the LinkToFilteredView function?
The original problem by another user was navigating to a filtered Table View AND automatically enter QuickEdit mode. While playing with the expression he found that the manual Deep Link was not filtering data.
So in attempts to help get the manual Deep Link to solve the original problem, I was trying to understand why it isnโt filtering the rows.
I guess an alternative question: "Is there a way to automatically open QuickEdit when using the LINKTOFILTEREDVIEW() function?
If we try this:
CONCATENATE("#view=Inventory&quickedit=true&filter=", ENCODEURL(IN([Product Code], LIST(โ100001โ,โ100002โ, โ100003โ))))
The Table opens in QuickEdit mode but displays ALL rows, not just the 3 expected rows
Try this:
CONCATENATE(
"#view=Inventory&quickedit=true&filter=",
ENCODEURL(
'IN([Product Code], LIST(โ100001โ,โ100002โ, โ100003โ))'
)
)
Sorry @Steve. No dice!!
Heh. I got around to looking at a URL generated by AppSheet itself for a filtered view. Itโs not at all a trivial thing to reproduce. Thereโs a good reason LINKTOFILTEREDVIEW() exists!
This is the JSON-formatted URL-decoded filter for a filtered view in my example app:
{
"ResultType": "Yes\/No",
"EvalType": "FUNCTION",
"FunctionName": "IN",
"Children": [
{
"ResultType": "Ref",
"ResultTypeQualifier": "{\r\n++\"ReferencedTableName\":+\"EXAMPLE\",\r\n++\"ReferencedType\":+\"Text\",\r\n++\"ReferencedTypeQualifier\":+\"{\\r\\n++\\\"MaxLength\\\":+null,\\r\\n++\\\"MinLength\\\":+null,\\r\\n++\\\"IsMulticolumnKey\\\":+false,\\r\\n++\\\"Valid_If\\\":+null,\\r\\n++\\\"Error_Message_If_Invalid\\\":+null,\\r\\n++\\\"Show_If\\\":+null,\\r\\n++\\\"Required_If\\\":+null,\\r\\n++\\\"Editable_If\\\":+\\\"=false\\\",\\r\\n++\\\"Reset_If\\\":+null,\\r\\n++\\\"Suggested_Values\\\":+null\\r\\n}\",\r\n++\"ReferencedKeyColumn\":+null,\r\n++\"IsAPartOf\":+false,\r\n++\"RelationshipName\":+null,\r\n++\"InputMode\":+\"Auto\",\r\n++\"Valid_If\":+null,\r\n++\"Error_Message_If_Invalid\":+null,\r\n++\"Show_If\":+null,\r\n++\"Required_If\":+null,\r\n++\"Editable_If\":+null,\r\n++\"Reset_If\":+null,\r\n++\"Suggested_Values\":+null\r\n}",
"EvalType": "COLUMN",
"ColName": "_THISROW",
"IsPure": true,
"ColumnsReferenced": []
},
{
"ResultType": "List",
"ResultTypeQualifier": {
"ElementType": "Ref",
"ElementTypeQualifier": "{\r\n++\"ReferencedTableName\":+\"EXAMPLE\",\r\n++\"ReferencedType\":+\"Text\",\r\n++\"ReferencedTypeQualifier\":+\"{\\r\\n++\\\"MaxLength\\\":+null,\\r\\n++\\\"MinLength\\\":+null,\\r\\n++\\\"IsMulticolumnKey\\\":+false,\\r\\n++\\\"Valid_If\\\":+null,\\r\\n++\\\"Error_Message_If_Invalid\\\":+null,\\r\\n++\\\"Show_If\\\":+null,\\r\\n++\\\"Required_If\\\":+null,\\r\\n++\\\"Editable_If\\\":+\\\"=false\\\",\\r\\n++\\\"Reset_If\\\":+null,\\r\\n++\\\"Suggested_Values\\\":+null\\r\\n}\",\r\n++\"ReferencedKeyColumn\":+null,\r\n++\"IsAPartOf\":+false,\r\n++\"RelationshipName\":+null,\r\n++\"InputMode\":+\"Auto\",\r\n++\"Valid_If\":+null,\r\n++\"Error_Message_If_Invalid\":+null,\r\n++\"Show_If\":+null,\r\n++\"Required_If\":+null,\r\n++\"Editable_If\":+null,\r\n++\"Reset_If\":+null,\r\n++\"Suggested_Values\":+null\r\n}",
"ItemSeparator": "+,+",
"Valid_If": null,
"Error_Message_If_Invalid": null,
"Show_If": null,
"Required_If": null,
"Editable_If": null,
"Reset_If": null,
"Suggested_Values": null
},
"EvalType": "CONSTANT",
"ConstantValue": "jr0JV7Mc+,+WfrGyCpe+,+c7dffc63+,+B5fTFpqr+,+79c9e1d2+,+2e201d2a+,+JfgBZDel+,+++,+F1iZmmHa+,+0ea0d527+,+8zgFlOgp+,+63e92496+,+3586d94e+,+6321f71a+,+b1e21eba",
"IsPure": true,
"ColumnsReferenced": []
}
],
"IsPure": true,
"ColumnsReferenced": []
}
Ok, got it! This isnโt really supported for a manual Deep Link.
A Feature Request to auto-open QuickEdit from the โnewโ view navigation functions is the way to go.
Thanks!!
Hi John, please do make it a feature requestโฆ
Thierry
Hey all!!
@Steve came up with a suggestion to solve the original problem of being able to navigate to a Filtered Table View AND be able to open that resulting table in Quickedit mode.
Use a CONCATENATE expression like so:
CONCATENATE(
LINKTOFILTEREDVIEW(
"Inventory",
IN([Product Code], LIST(โ100001โ,โ100002โ))
),
"&quickedit=true"
)
The LINKTOFIKTEREDVIEW() will pre-process into its underlying URL with filter logic included and then the QuickEdit parameter will be tacked on.
It still would be nice to be able to add such additional parameters to the function and not have to use CONCATENATE, so I will continue with a Feature Request.
Kudos to @Steve!!
User | Count |
---|---|
25 | |
25 | |
24 | |
21 | |
20 |