Manuales de desarrollo de YeboYebo
Una medida dinámica es la que se calcula conforme se van mostrando datos en lugar de hacerse al recargar el cubo. Para crearla debemos seguir los siguientes pasos:
- En la función **dameSqlAgregacion** del fichero **in_navegador.qs** añadimos un case para indicar qué función de agregación corresponde a nuestra nueva medida.
Ej. Para la medida **margen** la función de agregación será **MARGEN**
if (funElemento == “margen”) { valor = “MARGEN”; }
- En la función **dameCampoAgregado** del fichero **in_navegador.qs** añadimos un case para indicar la fórmula con la que se calculará nuestra función de agregación.
Ej.
case “MARGEN”: { const ventas = this.iface.medidas_[“ventas”][“element”].attribute(“column”) const coste = this.iface.medidas_[“coste”][“element”].attribute(“column”)
miSelect += "CASE WHEN SUM(" + ventas + ") <> 0 THEN ((SUM(" + ventas + ") - SUM(" + coste + "))*100)/SUM(" + ventas + ") ELSE 0 END AS margen";
break; } ```
if (funAgregacion == "MARGEN") {
valor = "CASE WHEN SUM(m_venta) <> 0 THEN ((SUM(m_venta) - SUM(m_coste))*100)/SUM(m_venta) ELSE 0 END AS margen";
}
Ejemplo obtenido de fun_jsenar_bi para el cubo ventas_sh