Here's a minimal working page.
Well, working is not exactly the proper word.
But the 'things' are there.
{
"custom": {},
"params": {
"category_id": "",
"family_id": "",
"item_id": ""
},
"propConfig": {
"params.category_id": {
"paramDirection": "input",
"persistent": true
},
"params.family_id": {
"paramDirection": "input",
"persistent": true
},
"params.item_id": {
"onChange": {
"enabled": null,
"script": "\tself.getChild(\"root\").getChild(\"families\").getChild(\"Dropdown\").props.value \u003d self.params.family_id\n\tself.getChild(\"root\").getChild(\"categories\").getChild(\"Dropdown\").props.value \u003d self.params.category_id\n\tself.getChild(\"root\").getChild(\"items\").getChild(\"Dropdown\").props.value \u003d self.params.item_id"
},
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "families"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"queryPath": "sandbox/list_families"
},
"type": "query"
}
},
"props.value": {
"onChange": {
"enabled": null,
"script": "\tself.parent.parent.getChild(\"categories\").getChild(\"Dropdown\").props.value \u003d None"
}
}
},
"props": {
"showClearIcon": true
},
"type": "ia.input.dropdown"
},
{
"meta": {
"name": "value"
},
"position": {
"basis": "150px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "../Dropdown.props.value"
},
"type": "property"
}
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "families"
},
"position": {
"basis": "34px"
},
"props": {
"style": {
"gap": "3px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "categories"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"parameters": {
"family_id": "{.../families/Dropdown.props.value}"
},
"queryPath": "sandbox/list_categories"
},
"type": "query"
}
},
"props.value": {
"onChange": {
"enabled": null,
"script": "\tself.parent.parent.getChild(\"items\").getChild(\"Dropdown\").props.value \u003d None"
}
}
},
"props": {
"showClearIcon": true
},
"type": "ia.input.dropdown"
},
{
"meta": {
"name": "value"
},
"position": {
"basis": "150px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "../Dropdown.props.value"
},
"type": "property"
}
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "categories"
},
"position": {
"basis": "34px"
},
"props": {
"style": {
"gap": "3px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "items"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"parameters": {
"category_id": "{.../categories/Dropdown.props.value}"
},
"queryPath": "sandbox/list_items"
},
"type": "query"
}
}
},
"props": {
"showClearIcon": true
},
"type": "ia.input.dropdown"
},
{
"meta": {
"name": "value"
},
"position": {
"basis": "150px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "../Dropdown.props.value"
},
"type": "property"
}
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "items"
},
"position": {
"basis": "34px"
},
"props": {
"style": {
"gap": "3px"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"gap": "10px",
"padding": "15px"
}
},
"type": "ia.container.flex"
}
}
and another page used to navigate to it with parameters:
{
"custom": {},
"params": {},
"props": {},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "families"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"queryPath": "sandbox/list_families"
},
"type": "query"
}
}
},
"props": {
"showClearIcon": true,
"value": null
},
"type": "ia.input.dropdown"
}
],
"meta": {
"name": "families"
},
"position": {
"basis": "34px"
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "categories"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"parameters": {
"family_id": "{.../families/Dropdown.props.value}"
},
"queryPath": "sandbox/list_categories"
},
"type": "query"
}
}
},
"props": {
"showClearIcon": true,
"value": 9
},
"type": "ia.input.dropdown"
}
],
"meta": {
"name": "categories"
},
"position": {
"basis": "34px"
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "150px"
},
"props": {
"text": "items"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Dropdown"
},
"position": {
"basis": "256px"
},
"propConfig": {
"props.options": {
"binding": {
"config": {
"parameters": {
"category_id": "{.../categories/Dropdown.props.value}"
},
"queryPath": "sandbox/list_items"
},
"type": "query"
}
}
},
"props": {
"showClearIcon": true,
"value": null
},
"type": "ia.input.dropdown"
}
],
"meta": {
"name": "items"
},
"position": {
"basis": "34px"
},
"type": "ia.container.flex"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"params": {
"category_id": "{/root/categories/Dropdown.props.value}",
"family_id": "{/root/families/Dropdown.props.value}",
"item_id": "{/root/items/Dropdown.props.value}"
},
"view": "VUES/SUIVI_OUTILLAGE/sandbox/mainpage"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Button"
},
"position": {
"basis": "34px"
},
"type": "ia.input.button"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"gap": "10px",
"padding": "15px"
}
},
"type": "ia.container.flex"
}
}
and some queries to create/fill the tables used (MSSQL):
create table families (
id int identity primary key,
name nvarchar(50)
)
create table categories (
id int identity primary key,
family_id int references families (id),
name nvarchar(50)
)
create table items (
id int identity primary key,
category_id int references categories (id),
name nvarchar(50)
)
insert into families (name)
values
('familyA'),
('familyB'),
('familyC'),
('familyD')
insert into categories (name, family_id)
values
('category1A', 1),
('category1B', 1),
('category1C', 1),
('category1D', 1),
('category2A', 2),
('category2B', 2),
('category2C', 2),
('category2D', 2),
('category3A', 3),
('category3B', 3),
('category3C', 3),
('category3D', 3),
('category4A', 4),
('category4B', 4),
('category4C', 4),
('category4D', 4)
insert into items (name, category_id)
values
('1AA', 1),
('1AB', 1),
('1AC', 1),
('1AD', 1),
('1BA', 2),
('1BB', 2),
('1BC', 2),
('1BD', 2),
('1CA', 3),
('1CB', 3),
('1CC', 3),
('1CD', 3),
('1DA', 4),
('1DB', 4),
('1DC', 4),
('1DD', 4),
('2AA', 5),
('2AB', 5),
('2AC', 5),
('2AD', 5),
('2BA', 6),
('2BB', 6),
('2BC', 6),
('2BD', 6),
('2CA', 7),
('2CB', 7),
('2CC', 7),
('2CD', 7),
('2DA', 8),
('2DB', 8),
('2DC', 8),
('2DD', 8),
('3AA', 9),
('3AB', 9),
('3AC', 9),
('3AD', 9),
('3BA', 10),
('3BB', 10),
('3BC', 10),
('3BD', 10),
('3CA', 11),
('3CB', 11),
('3CC', 11),
('3CD', 11),
('3DA', 12),
('3DB', 12),
('3DC', 12),
('3DD', 12),
('4AA', 13),
('4AB', 13),
('4AC', 13),
('4AD', 13),
('4BA', 14),
('4BB', 14),
('4BC', 14),
('4BD', 14),
('4CA', 15),
('4CB', 15),
('4CC', 15),
('4CD', 15),
('4DA', 16),
('4DB', 16),
('4DC', 16),
('4DD', 16)