Utiliser les metadata dans un tableau croisé

Il peut être utile de retrouver simplement les données liées à la valeur contenu dans une cellule de tableau croisé, à savoir les champs en ligne/colonne et leurs valeurs :

meta = {
  row: [ { name, value, field }, ... ],  // fields on row
  col: [ { name, value, field }, ... ],  // fields on column
  axis: { name, label... },              // cell axis
  value: 1234                            // cell value
}

Par exemple pour associer un click à chaque cellule qui ouvre une liste filtrée d’après la valeur de la colonne de la cellule :

$(".ctcell").css("cursor","pointer").click(function(e) {
  e.stopPropagation();
  var meta = $(this).data("meta");
  // list filtered with the column value
  if (meta.col && meta.col.length) {
    var obj = $ui.getAjax().getBusinessObject("MyObject");
    obj.filters = { myField: meta.col[0].value || "%" };
    $ui.displayList("#mydiv", obj, {
       showNav: true,
       nav: "add",
       search: "column"
    });
  }
});

3 Likes