[RESOLVIDO] - Colocar dois IFs no evento onScriptInit

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!

Ativa o modo debug da aplicação e verificar o SQL utilizado.

Possivelmente a macro sc_select_where não é cumulativa.

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.

Alex, faça o seguinte:

1º) Inicie essa variável:

$var_where = '';

2º) No primeiro IF faça:

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:

if ([mat] > 0){
   $var_where .= " AND Setor in ([mat])";
}

E por último, faça:

sc_select_where(add) = $var_where;

Espero que te ajude…

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!

É o que o Ronyan falou. A macro não é cumulativa. A variável é.

Coloque como resolvido no tópico.

Abraço

Show! Resolvido!