Filtro nao funciona com minha SQL

segue minha SQL na aplicacao consulta:

SELECT codprod, codgrupo, codsub_grupo, sum((compra+devol_cli+balanco)-(venda+devol_fornec+perda+roubo)) as tot FROM estoque_prod, produtos
where (codprod=codigodevenda and codfilial=1) or (codprod=codigodevenda and codfilial=3) group by codprod

até aí tudo bem, porem ao utilizar o filtro pelo codgrupo por exemplo, ativei o modo debug e quando informo no filtro o codgrupo = 50 ele altera o sql para:
…where (codprod=codigodevenda and codfilial=1) or (codprod=codigodevenda and codfilial=3) or (codgrupo=50) group by codprod

trazendo um resultado totalmente indesejado. quando deveria ser:
…where (codprod=codigodevenda and codfilial=1 and codgrupo=50) or (codprod=codigodevenda and codfilial=3 and codgrupo=50) group by codprod.

Como resolvo isso, pelo amor de Deus!

Bom dia, o filtro será apenas do codgrupo?

Tire o Where da consulta

Se sim, crie um novo campo no filtro (nome do campo diferente de qq outro, ex: codgrupo_filtro), coloque as configurações igual ao anterior e no onScriptInit veja se está filtrando esse campo com if ex.:
if(!empty({codgrupo_filtro}))
{
aqui você adiciona o where com sc_select_where(add) = " sua clausula where"
}

Não, o filtro será por: codprod, codgrupo e codsub_grupo

Certo então cria todos campos no filtro e adiciona como falei pela macro. Só deixa o nome do campo diferente do filtro (criado) e da consulta (banco)

Blz, deu certo. Obrigado!

Legal testa mais uma coisa.

Se o usuário puxar apenas um campo você precisa ver se vai adicionar a condição com " and" ou sem o and.

Para que isso não dê erro. Coloque alguma coisa positiva no where principal (exemplo where 1=1 só para ter uma condição)
E os campos criados, no onScriptInit coloque todos com começando com " AND condição"

Eu ja tinha providenciado isso. Obrigado!

Não sei se existe outra forma de ver isso, mas esse 1=1 salva.