Přeskočit na hlavní obsah

Filtrování select boxů

Pro filtrování select boxů v editoru lze využít funkce eso9.filterSelectBox které se na vstup předá objekt s parametry pro filtrování. objekt musí obsahovat tyto hodnoty

  • form: Název formy nad kterou je voláno
  • maticeFields: Pole se seznam nazvu selectboxu v pořadí, ve kterém jsou na sobě závislé ["select1", "select2", "select3"]
  • matice: Pole hodnot matice závislostí. Rozměr je dany počtem filtrovaných polí [ [1,1,0], [1,1,1], [1,2,0],[1,2,3] ]....
  • alwaysEnabled: Pole hodnot, které se nezakazuji. Pro příklad ["", -1] hodnota neurčeno
  • changedField: Název pole které vyvolalo akci.

Funkce by měla být volána při změně hodnoty selectboxu. To se dosáhne zapojením vlastní funkce pomocí "data-JSfunction"

příklad funkce ve stránce.

Celý příklad

<script>
var par={};
//povolene kombinace hodnot select boxů
par.matice = [
[1,1,1,2],
[1,1,1,1],
[1,1,2,1],
[1,1,3,1],
[1,2,1,1],
[1,2,1,2],
[1,2,4,1],
[1,2,4,2],
[1,2,5,1],
[1,2,5,1]
];
//nazvy poli serazene dle zavislosti. pocet musi odpovidat poctu hodnot matice
par.maticeFields = ["MF_VLSEL1", "MF_VLSEL2", "MF_VLSEL3", "MF_VLSEL4"];
//nazev formy ve ktere jsou pole
par.form = "TEST";
//seznam hodnot, ktere se neskryvaji. Povětšínou hodnoty pro "neurčeno"
par.alwaysEnabled = ["", -1];

//funkce zapojena do všech selectboxů. pomocí data-JSfunction=":filterSelectBox"
var filterSelectBox = function (sender, rowState, rowData, browse ) {
//pole ktere vyvolalo nastaveni
par.changedField = sender.name;
//volání funkce k obslouženi nastavení hodnot dle matice
eso9.filterSelectBox(par)
}

</script>