Variavel global no SQL

Bom dia pessoal,

No campo SQL eu tenho minha select

SELECT t3.idescola,
t3.periodo,
t3.idcurso,
t2.idturma,
t2.idserie,
t4.anome,
t4.ra,
t1.dt_matricula,
t1.idmatricula,
t6.iddisciplina,
t7.nota,
t1.idserie_turma_periodo,
t8.idmodulo

FROM edu_matricula t1
JOIN edu_serie_turma_periodo t2
ON t2.idserie_turma_periodo = t1.idserie_turma_periodo
JOIN edu_periodo_letivo t3
ON t3.idperiodo_letivo = t2.idperiodo_letivo
JOIN edu_cliente t4
ON t4.idcliente = t1.idcliente
JOIN edu_historico t5
ON t5.idmatricula = t1.idmatricula
JOIN edu_serie_disciplina t6
ON t6.idserie_disciplina = t5.idserie_disciplina
JOIN edu_boletim t7
ON t7.idhistorico = t5.idhistorico
JOIN edu_modulo t8
ON t8.idmodulo = t7.idmodulo
WHERE t8.rec_final!=‘sim’ and t1.situacao!=’[vg_situacao_grid_edu_boletim_estatistica]’ and COALESCE(t7.nota,999999) !=999999

No meu filtro eu criei um campo tipo checkbox, que quando o cliente mudar o valor dele tem que mudar o valor da variável [vg_situacao_grid_edu_boletim] para fazer efeito na filtragem. Eu usei no evento onValidate do filtro assim:

if (explode("##@@",{status_matricula}[0])==‘sim’){
[vg_situacao_grid_edu_boletim_estatistica]=‘Transferido’;
}else{
[vg_situacao_grid_edu_boletim_estatistica]=’ ';
}

O meu problema é que entrando de forma correta no if esta entrando, porem na hora que eu aperto pesquisar ele não tem efeito na minha select.

O que estou fazendo de errado?

$_arr=explode("##@@",{status_matricula}[0]);

if ($_arr[0]==‘sim’){
[vg_situacao_grid_edu_boletim_estatistica]=‘Transferido’;
}else{
[vg_situacao_grid_edu_boletim_estatistica]=’ ';
}

o explode retorna um array, então não pode comparar Array() com uma constante (“sim”).

Bom dia Haroldo, obrigado por me ajudar, mas continuo com o problema

No if entrou, porem a variável [vg_situacao_grid_edu_boletim_estatistica] não recebe o valor Transferido ou ’ ’ (vazio).

retorno pelo debug
postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and t1.situacao!=’ ’ and COALESCE(t7.nota,999999) !=999999

minha select no SQL
SELECT t3.idescola,
t3.periodo,
t3.idcurso,
t2.idturma,
t2.idserie,
t4.anome,
t4.ra,
t1.dt_matricula,
t1.idmatricula,
t6.iddisciplina,
t7.nota,
t1.idserie_turma_periodo,
t8.idmodulo

FROM edu_matricula t1
JOIN edu_serie_turma_periodo t2
ON t2.idserie_turma_periodo = t1.idserie_turma_periodo
JOIN edu_periodo_letivo t3
ON t3.idperiodo_letivo = t2.idperiodo_letivo
JOIN edu_cliente t4
ON t4.idcliente = t1.idcliente
JOIN edu_historico t5
ON t5.idmatricula = t1.idmatricula
JOIN edu_serie_disciplina t6
ON t6.idserie_disciplina = t5.idserie_disciplina
JOIN edu_boletim t7
ON t7.idhistorico = t5.idhistorico
JOIN edu_modulo t8
ON t8.idmodulo = t7.idmodulo
WHERE t8.rec_final!=‘sim’ and t1.situacao!=’[vg_situacao_grid_edu_boletim_estatistica]’ and COALESCE(t7.nota,999999) !=999999

em que evento utiliza o código?

Consulta
A minha select esta na Consulta em SQL.
A variável global [vg_situacao_grid_edu_boletim_estatistica] faz parte da select aqui na consulta

Filtro
O meu campo checkbox foi criado no Filtro
e o if que você me passou foi criado no evento onValidate do filtro.

Pelos meus testes o que eu pude perceber é que do evento onValidate do filtro não consigo mexer na variável gloval que faz parte da consulta, também tentei da consulta em qualquer evento mexer no campo checkbox que faz parte do filtro e não consigo tambem.

OBS: este é um formulário de consulta que estou usando a opção de filtro dele.

Amigo Haroldo mesmo passando a duvida continuei lendo o fórum e vendo muitos itens encontrei um interessante que falava para usar o comando sc_select_where(add), tentei mas não funcionou, mas pode ser que eu esteja usando de forma errada, me corrija por favor.
Ao abrir o debug o retorno da select é assim:

(postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and t1.situacao!=’’ and COALESCE(t7.nota,999999) !=999999

e se eu seleciono algum item do filtro ele complemente a minha select aparece assim:
(postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and t1.situacao!=’’ and COALESCE(t7.nota,999999) !=999999 and ( t3.idescola = 1 )

o que eu preciso é que ela apareça assim:

(postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and COALESCE(t7.nota,999999) !=999999 and ( t3.idescola = 1 ) and t1.situacao!=‘Transferido’

eu tentei uma solução assim, tirei da minha select o t1.situação e no if que vc me mandou ao invés de alterar a variável global eu tente coloca este sc_select_where(add) assim:

esta código esta no evento onValidate do filtro:

$_arr=explode("##@@",{status_matricula}[0]);

if ($_arr[0]==‘sim’){
sc_select_where(add) = "and t1.situacao!=‘Transferido’;
}else{
sc_select_where(add) = "and t1.situacao!=‘Transferido’;
}

porem ele não me adiciona na select o and t1.situacao!=‘Transferido’

no evento onscrptinit executa var_dump({status_matricula});

Desculpem não ter respondido, mas fiquei sem internet deste ontem, mas vamos la, o if esta funcionando, esta entrando tudo funcionando, vou tentar simplificar a pergunta:

Como eu faço para complementar a minha select através do filtro:
quando ele é executado a primeira vez ele aparece assim:
(postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and COALESCE(t7.nota,999999) !=999999

eu preciso colocar mais um and para que ele fique assim (o and esta em vermelho)
(postgres7): select count(*), avg(t7.nota) as avg_t7_nota from edu_matricula t1 JOIN edu_serie_turma_periodo t2 ON t2.idserie_turma_periodo = t1.idserie_turma_periodo JOIN edu_periodo_letivo t3 ON t3.idperiodo_letivo = t2.idperiodo_letivo JOIN edu_cliente t4 ON t4.idcliente = t1.idcliente JOIN edu_historico t5 ON t5.idmatricula = t1.idmatricula JOIN edu_serie_disciplina t6 ON t6.idserie_disciplina = t5.idserie_disciplina JOIN edu_boletim t7 ON t7.idhistorico = t5.idhistorico JOIN edu_modulo t8 ON t8.idmodulo = t7.idmodulo where t8.rec_final!=‘sim’ and COALESCE(t7.nota,999999) !=999999 and t1.situacao!=‘Transferido’

tentei colocar sc_select_where(add) = "and t1.situacao!=‘Transferido’; no evento do scriptini do filtro não funcionou
tentei colocar na minha select uma variavel global e mudar o valor dela no scriptini do filtro tambem não mudou.