Autor Tópico: Datas Especiais - Como validar ??  (Lida 982 vezes)

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Datas Especiais - Como validar ??
« Online: Setembro 05, 2014, 11:28:29 am »
Quando se faz um filtro por data, e se opta por aquelas datas especiais, tipo: Ultimo Ano, Ultimo 24 meses, etc.. o SC acaba gerando um intervalo de datas automaticamente, mesmo quando temos um único campo de data no filtro, como podemos ter acesso as duas datas, data inicial e final, do intervalo gerado por esse recurso de datas especiais, para podermos validarmos e até mesmo usá-las por exemplo num cabeçalho da consulta ???
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Datas Especiais - Como validar ??
« Responder #1 Online: Setembro 05, 2014, 12:02:27 pm »
Ola Ronaldo sim e possível sim.
Abaixo explicação de como obter.

Eu tenho um campo Manual do tipo data "Especial/Normal" se chama fecha esta em espanhol.
No Evento OnValidate do Filtro o SC "disponibiliza" uma variavel que tem o mesmo nome do seu campo fecha seguido de _cond ficando assim fecha_cond
Dentro do OnValidate tenho 2 Variáveis que são minhas as cuais eu utilizarei onde quiser transformando-as em Globais, elas são
$fecha_inicial y $fecha_final
O resto você já poderá deduzir..
Código: [Selecionar]

switch ($fecha_cond) {
    case "eq": //igual
        $fecha_inicial = $fecha;
        $fecha_final   = $fecha;
        break;
    case "bw": //between
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_input_2_ano.$fecha_input_2_mes.$fecha_input_2_dia;
        break;
    case "HJ": //hoje
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_ano.$fecha_mes.$fecha_dia;
        break;
    case "OT": //Ontem
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_ano.$fecha_mes.$fecha_dia;
        break;
    case "U7": //ultimos 7
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_input_2_ano.$fecha_input_2_mes.$fecha_input_2_dia;
        break;
    case "MM": //Este mes
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_input_2_ano.$fecha_input_2_mes.$fecha_input_2_dia;
        break;
    case "M6": //Ultimo 6 meses
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_input_2_ano.$fecha_input_2_mes.$fecha_input_2_dia;
        break;
    case "M3": //Ultimo 3 meses
        $fecha_inicial = $fecha_ano.$fecha_mes.$fecha_dia;
        $fecha_final   = $fecha_input_2_ano.$fecha_input_2_mes.$fecha_input_2_dia;
        break;
    break;
}


Para obter o valor dos outros tipos especias basta inspecionar o elemento y você vera os valores do Combo

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Datas Especiais - Como validar ??
« Responder #2 Online: Setembro 05, 2014, 12:14:10 pm »
Willian,

Quer dizer que o nome da variável da primeira data é igual a nome que temos para o campo no filtro, e o da 2a. data é o mesmo nome acrescido de input_2 ???

Considerando que o meu campo chama-se DTFiltro, então eu teria isso:

$dt1 = $DTFiltro
$dt2 = $DTFiltro_input2

Correto ???

Ou teria que atribuir separadamente o ano,mes e dia como está no seu exempo ??
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Datas Especiais - Como validar ??
« Responder #3 Online: Setembro 05, 2014, 12:28:52 pm »
Bom no seu caso seria

DTFiltro -- seu campo

Variáveis disponibilizadas

$DTFiltro --> para apenas data tipo  "Igual a"
$DTFiltro_ano , $DTFiltro_dia, $DTFiltro_mes --> para tipos especias data 1
$DTFiltro_input_2_ano, $DTFiltro_input_2_dia, $DTFiltro_input_2_mes --> para tipos especias data 2


As datas são separadas por isso você deve juntalas
« Última modificação: Setembro 05, 2014, 12:31:30 pm por Willian Fernando »