Boa tarde Pessoal.
Desculpem-me a demora para responder, sobre o assunto de ontem, mas, é que tive diversos contratempos hoje. Ontem, já tarde da noite, com a ajuda de uma pessoa sensacional que tive o grato prazer de conhecer, que é o Haroldo, resolvi o meu problema. O problema era complexo mesmo como ele já havia dito antes, mas, ele resolveu. Vou postar aqui a solução para quem possa ter o mesmo problema algum dia poder resolver também:
- Ignorei a controle que estava fazendo, e voltei para a aplicação filtro/consulta. Nesta aplicação, os campos que são de pesquisa na minha tabela principal continuaram lá no filtro, e criei outros (campos virtuais) para que eu pudesse fazer pesquisa nas outras tabelas que estão como foreign key da principal, e por ser pesquisa dinâmica, não dá para fazer com views.
- Após os campos criados, fiz o tratamento destes campos dentro do onscriptinit da consulta, e não no onvalidade do filtro. “Isto faz toda a diferença!”
- No onscriptinit, tratei o preenchimento dos campos virtuais para poder alterar o select de acordo com a minha necessidade. Abaixo posto um trecho basico do código para ajudar a compreensão:
$whereFlag = FALSE;
$whereNome = ‘’;
// utilizei em {nome} um campo texto auto-complete para pegar o codigo do nome e adicionar este código, que é a minha chave, ao filtro.
if ({nome}) {
$whereNome = " AND codigo = {nome} ";
$whereFlag = TRUE;
}
if (empty({sc_where_atual}) && $whereFlag) {
sc_select_where(add) = “where 1=1 $whereNome”;
}
else {
sc_select_where(add) = “$whereNome”;
}
Pronto, isto resolveu os meus problemas. Agora tenho que desenvolver o restante dos controles e demais campos de pesquisa. PROBLEMA RESOLVIDO!
Aqui faço um agradecimento a todos que se preocuparam em contribuir com seu conhecimento, e ao Haroldo que se preocupou em não só ajudar mas a compreender um problema que se arrastava a 1 mês sem solução. Grande abraço a todos.