On Mié 17 Jun 2009 09:01:11 Fernando Martin Gatica escribió:
> Hola, tengo en un cuadro una columna en H:m:s, y quiero totalizar al final.
> ¿cómo hago? Gracias.
>
Hola Fernando,
La idea es armar un nuevo tipo de formato que convierta un entero en H:M:S y 
usarlo en esa columna, asi lo que sume el cuadro en definitiva sean enteros y 
el formateo lo pase al formato indicado:

class formateo_proyecto extends toba_formateo
{
        /**
         * @param integer $valor Cantidad total de segundos
         * @return cadena en formato H:M:S
         */
        function formato_hora($valor)
        {
                $segundos = str_pad($valor % 60, 2, 0, STR_PAD_LEFT);
                $minutos = floor($valor / 60);
                $horas = floor($minutos / 60);
                $minutos = str_pad($minutos % 60, 2, 0, STR_PAD_LEFT);
                return "$horas:$minutos:$segundos";
        }
}


Dentro del ci:

function conf__mi_cuadro(toba_ei_cuadro $cuadro)
{
        $cuadro->set_formateo_columna('columna_hora', 'hora', 
'formateo_proyecto');

        //Recorda siempre pasarle los datos como enteros, si ya lo tenes en 
formato 
hora tendrías que aplicar la funcion inversa a formato_hora
        $datos = array(
                'columna_hora' => 300
                'columna_hora' => 5000
        );
        $cuadro->set_datos($datos);
}

Lo probé usando el trunk, creo que la 1.3 también permite asignar formateos 
propios a columnas. Cualquier cosa la seguimos.

Saludos,
Seba

PD: Revisá la función de pasar segundos a horas porque la hice sin mucha 
prueba

<<attachment: formato_hora.png>>

_______________________________________________
toba.usuarios mailing list
toba.usuarios@siu.edu.ar
https://listas.siu.edu.ar/mailman/listinfo/toba.usuarios

Responder a