[RESOLVIDO] GRIDs com JOIN filtros não funcionam!

Prezado(a)s, boa tarde!

Outro problema, porem eu contornei o mesmo criando uma view no mysql como sugestão vista aqui mesmo no forum. Porem penso que isso deveria trabalhar, não faz sentido.

Sem contar que contornei esse problema com a view e me deparei com a falha no filtro da grid caso no SQL tenha alguma opção WHERE.

Alguém está conseguindo contornar esses problemas?

Abs.

Luis Gustavo

Quando se entende como o Scriptcase regera o SQL para que consiga mongtar as grids, com quebras, rsumos, etc descobre-se que criar Selects muito complexos rfealmente podem gerar falhas. Por isso nesses casos a view resolve. Lembre-se, é uma ferramenta RAD.

Neu conselho é nunca usar WHERE diretamente no SQL principal e sim sempre usar a macro sc_select_where(add) para adicionar dinamicamente e de forma mais segura a cláusula where prevendo os wheres oriundos dos filtros.

Perfeito Haroldo, foi exatamente sua sugestão de view que eu segui.

Agora me fez confusão essa macro (sc_select_where(add) ). Como eu posso usa-la dentro da grid uma vez que a grid é gerada automaticamente o a query aparece dentro da opçao SQL no menu a esquerda?

Obrigado pelo retorno.

Vai usar no evento onscriptinit.

Veja como usar a macro no webhelp

Haroldo, carregou como deveria na GRID normal, porem quando aplico qualquer filtro ele retorna o erro abaixo, tem ideia do que pode ser? Penso que ele esteja juntando dois WHERE, sabe corrigir isso no SC ?

sc_select_where(add) = " WHERE (status = ‘1’) OR (status = ‘2’) AND (pk_id_professor = ‘[usr_id]’) " ;

Erro:
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘WHERE (status = ‘1’) OR (status = ‘2’) AND (pk_id_professor = ‘3’)’ at line 1
select count(*) from View_homework_x_turma where (pk_homework = 8 ) WHERE (status = ‘1’) OR (status = ‘2’) AND (pk_id_professor = ‘3’)

Acho que resolvi, precisava incluir um if

if(empty({sc_where_current})){
sc_select_where(add) = " WHERE (status = ‘1’) OR (status = ‘2’) AND (pk_id_professor = ‘[usr_id]’) " ; //
} else{
sc_select_where(add) = " AND (status = ‘1’) OR (status = ‘2’) AND (pk_id_professor = ‘[usr_id]’) ";
}

Obrigado Haroldo

1 Curtida