Autor Tópico: [RESOLVIDO] - Colocar dois IFs no evento onScriptInit  (Lida 669 vezes)

alexmax

  • Novato
  • *
  • Mensagens: 29
    • Email
[RESOLVIDO] - Colocar dois IFs no evento onScriptInit
« Online: Maio 25, 2016, 05:45:07 pm »
Sempre que coloco dois ifs na aplicação, ele lê apenas o segundo. Alguém pode me ajudar?


if ((!empty({datade})) AND ({dataate}!='____-__-__')){   
   sc_select_where(add) = "AND Data BETWEEN '{datade}' AND '{dataate}'";
}
else{
   sc_select_where(add) = "AND Data BETWEEN '2001-01-01' AND '2099-01-01'";
}


$mat = isset($_REQUEST['mat']);

if ([mat] > 0){
   sc_select_where(add) = " AND Setor in ([mat])";

   echo "AND Setor in ([mat])";
}

Desde já muito obrigado!
« Última modificação: Maio 31, 2016, 11:28:57 am por Ronyan Alves »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Colocar dois IFs no evento onScriptInit
« Responder #1 Online: Maio 26, 2016, 03:54:10 pm »
Ativa o modo debug da aplicação e verificar o SQL utilizado.

Possivelmente a macro sc_select_where não é cumulativa.
--

Ronyan Alves
Equipe Scriptcase

alexmax

  • Novato
  • *
  • Mensagens: 29
    • Email
Re:Colocar dois IFs no evento onScriptInit
« Responder #2 Online: Maio 30, 2016, 01:00:46 pm »
Olá Ronyan Alves executei a aplicação em modo debug, e não há erro e continua ignorando a segunda condição. Eu consegui usando && na condição, porém se eu tiver muitas condições terei problemas e ficará um código bem confuso.
Ficou assim if ([mat] > 0 && (!empty({datade})) AND ({dataate}!='____-__-__')){

Será que não tem acrescentar um comando ou condição para continuar? Que a idéia dessa aplicação é executar as duas.

Ex: sc_select_where(add) = "AND Data BETWEEN '2001-01-01' AND '2099-01-01'"; e quando o valor da matricula for passado ele seja acrescentado ao comando SQL AND sc_select_where(add) = "AND Data BETWEEN '2001-01-01' AND '2099-01-01' Matricula in (2118101)"; para que fique assim.
« Última modificação: Maio 30, 2016, 01:02:30 pm por alexmax »

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Colocar dois IFs no evento onScriptInit
« Responder #3 Online: Maio 30, 2016, 01:11:19 pm »
Alex, faça o seguinte:

1º) Inicie essa variável:
Código: [Selecionar]
$var_where = '';2º) No primeiro IF faça:
Código: [Selecionar]
if ((!empty({datade})) AND ({dataate}!='____-__-__')){   
   $var_where .= "AND Data BETWEEN '{datade}' AND '{dataate}'";
}
else{
   $var_where .= "AND Data BETWEEN '2001-01-01' AND '2099-01-01'";
}
3º) No segundo IF faça:
Código: [Selecionar]
if ([mat] > 0){
   $var_where .= " AND Setor in ([mat])";
}

E por último, faça:
Código: [Selecionar]
sc_select_where(add) = $var_where;

Espero que te ajude...
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

alexmax

  • Novato
  • *
  • Mensagens: 29
    • Email
Re:Colocar dois IFs no evento onScriptInit
« Responder #4 Online: Maio 30, 2016, 02:33:47 pm »
Aeeeeeee funcionou! Muito obrigado Thyago Brasil show de bola! Obrigado pela sua dica também Ronyan Alves.

Eu só não entendi porque funciona dessa forma, pelo que entendi é a mesma coisa que eu estava fazendo, só que você jogou o valor na váriavel $var_where.

Valeu pela ajuda!

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 885
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Colocar dois IFs no evento onScriptInit
« Responder #5 Online: Maio 30, 2016, 02:34:51 pm »
É o que o Ronyan falou. A macro não é cumulativa. A variável é.

Coloque como resolvido no tópico.

Abraço
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

alexmax

  • Novato
  • *
  • Mensagens: 29
    • Email
Re:Colocar dois IFs no evento onScriptInit
« Responder #6 Online: Maio 30, 2016, 02:40:45 pm »
Show! Resolvido!