Exibir valor na GRID

Senhores,

Tenho um controle que passa paramentros para minha consulta:

Idlinha, Datai, Dataf, Horai, Horaf, Intervalo e Sentido.

Meu select é o seguinte:

SELECT 
Data,
truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0),
Idlinha,
Sentido,
Count(IdCarro),
SUM(Passageiros),
ROUND(SUM(Passageiros)/Count(IdCarro)) as Med_Pass
FROM
GuiasMov
WHERE
[cond]
GROUP BY
truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0)

Onde o truncate faz o agrupamento por intervalo de tempo…

07:00 - 07:15 … e assim por diante se o Intervalo for de 15 minutos…

Mas queria exibir esses intervalos na grid, para isso to usando esse codigo php :

        list($hora_fim,$minutos_fim) = explode(":", [Horaf]);
        list($ano_fim,$mes_fim,$dia_fim) = explode("-", [Dataf]);
        $fim = mktime($hora_fim,$minutos_fim,0, $mes_fim,$dia_fim,$ano_fim);
        list($ano_inicio,$mes_inicio,$dia_inicio) = explode("-", [Datai]);
        list($hora_inicio,$minutos_inicio) = explode(":", [Horai]);
        $intervalo = [Intervalo];
        $corrente = "";
        while($corrente < $fim)
        {
             $corrente = mktime($hora_inicio, $minutos_inicio,0, $mes_inicio,$dia_inicio,$ano_inicio);
                echo date("H:i", $corrente), ' - ';
                echo date( "H:i", mktime( $hora_inicio, $minutos_inicio+$intervalo, 0, $mes_inicio,$dia_inicio,$ano_inicio) );
                $minutos_inicio += $intervalo;
        }

Eu uso o codigo no evento OnRecord, mas o resultado sai fora do grid.

Tem como fazer isso?

O resultado sai fora da grid? como assim? print screen … e poe seu codigo completo ai.

Tenho um controle que passa paramentros para minha consulta:

Idlinha, Datai, Dataf, Horai, Horaf, Intervalo e Sentido.

Meu select é o seguinte:

SELECT 
Data,
truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0),
Idlinha,
Sentido,
Count(IdCarro),
SUM(Passageiros),
ROUND(SUM(Passageiros)/Count(IdCarro)) as Med_Pass
FROM
GuiasMov
WHERE
[cond]
GROUP BY
truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0)

Onde o truncate faz o agrupamento por intervalo de tempo…

07:00 - 07:15 … e assim por diante se o Intervalo for de 15 minutos…

Mas queria exibir esses intervalos na grid, para isso to usando esse codigo php :

        list($hora_fim,$minutos_fim) = explode(":", [Horaf]);
        list($ano_fim,$mes_fim,$dia_fim) = explode("-", [Dataf]);
        $fim = mktime($hora_fim,$minutos_fim,0, $mes_fim,$dia_fim,$ano_fim);
        list($ano_inicio,$mes_inicio,$dia_inicio) = explode("-", [Datai]);
        list($hora_inicio,$minutos_inicio) = explode(":", [Horai]);
        $intervalo = [Intervalo];
        $corrente = "";
        while($corrente < $fim)
        {
             $corrente = mktime($hora_inicio, $minutos_inicio,0, $mes_inicio,$dia_inicio,$ano_inicio);
                echo date("H:i", $corrente), ' - ';
                echo date( "H:i", mktime( $hora_inicio, $minutos_inicio+$intervalo, 0, $mes_inicio,$dia_inicio,$ano_inicio) );
                $minutos_inicio += $intervalo;
        }


Po, ta saindo fora da tela pq … vc ta dando echo :-p

kkkkkkkkkkkkkkkkkkkkkkkkkkkk

Primeiro ele roda o recordset e depois roda pra exiibir o html.

Ta rindo… Nem percebi isso…

Vou testar e digo o resultado…

se voce quizer que apareca na grid, atribua a algum campo.

pode criar campos e atribuir no onRecord valores a eles :slight_smile:

Mas Diogo o problema é o seguinte:

Tenho que atribuir
php 07:00 - 07:30 => 2086332 (truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0),)
php 07:30 - 08:00 => 2086337 truncate((unix_timestamp(HoraSaida))/(60*[Intervalo]),0),

e assim por diante… um por registro…

criei um campo na grid(campo padrao) e atribua esse valor que voce quer no onRecord

{campo_q_vc_criou} = …

Diogo,

Criei um campo e igualei e não ta exibindo os valores…

mestre seu codigo novamente, qual o nome do campo voce criou e em qual evento vc esta usando o codigo.

poe um print tbm ai da interface da tua consulta, mostrnado como ela esta.

Criei um campo chamado Int_tempo e no evento onRecord coloquei o seguinte:

{Int_tempo} ==  list($hora_fim,$minutos_fim) = explode(":", [Horaf]);
        list($ano_fim,$mes_fim,$dia_fim) = explode("-", [Dataf]);
        $fim = mktime($hora_fim,$minutos_fim,0, $mes_fim,$dia_fim,$ano_fim);
        list($ano_inicio,$mes_inicio,$dia_inicio) = explode("-", [Datai]);
        list($hora_inicio,$minutos_inicio) = explode(":", [Horai]);
        $intervalo = [Intervalo];
        $corrente = "";
        while($corrente < $fim)
        {
             $corrente = mktime($hora_inicio, $minutos_inicio,0, $mes_inicio,$dia_inicio,$ano_inicio);
                echo date("H:i", $corrente), ' - ';
                echo date( "H:i", mktime( $hora_inicio, $minutos_inicio+$intervalo, 0, $mes_inicio,$dia_inicio,$ano_inicio) );
                $minutos_inicio += $intervalo;
        }
;

Voce nao esta atribuindo nada a int_tempo

{Int_tempo} == list($hora_fim,$minutos_fim) = explode(":", [Horaf]);

voce esta atribuindo true ou false quando ao explode … acho que tu n entendeu.

se voce quer q o output va pra int_tempo … na era pra voce fazer isso?

no inicio do codigo
{Int_tempo} = “”; //inicializa

e depois no while:
{Int_tempo} .= date(“H:i”, $corrente), ’ - ';
{Int_tempo} .= date( “H:i”, mktime( $hora_inicio, $minutos_inicio+$intervalo, 0, $mes_inicio,$dia_inicio,$ano_inicio) );

Blz… vou testar e informo o resultado…

Diogo,

O o resutado foi esse:

Data	Horário	Linha	Sentido	Veículos	Venda a Bordo	 Média Venda Bordo 	Horário
01/09/2009 00:00:00	695.444,000000	415A	Ida	9	363	40	07:00 - 07:3007:30 - 08:0008:00 - 08:3008:30 - 09:0009:00 - 09:3009:30 - 10:0010:00 - 10:3010:30 - 11:0011:00 - 11:3011:30 - 12:0012:00 - 12:30

E teria que ser esse horario em unix_timestamp 695.444,000000 igual a esse 07:00 - 07:30 mktime, e assim por diante… um por registro…

ai voce que faz a formatação ne? :-p

Tem alguma ideia que possa colocar um por registro?