Hola Contra Veneno, funciono! muchisimas gracias!
en el zquery de delphi quedo asi:
SELECT
informes.*,
temainforme.*,
zonainf.*,
autoresxinforme.*
FROM
informes
LEFT OUTER JOIN temainforme ON (informes.idtema = temainforme.idtemainf)
AND (temainforme.idtemainf like concat('%',:idtema,'%'))
LEFT OUTER JOIN zonainf ON (informes.idzonainf = zonainf.idzonainf)
AND (zonainf.idzonainf like concat('%',:idzona,'%'))
LEFT OUTER JOIN autoresxinforme ON (informes.idinforme = autoresxinforme.idinforme)
AND (autoresxinforme.idautorext like concat('%',:idautor,'%'))
WHERE
informes.anioinforme like concat('%', :anio,'%')
al activar el formulario pongo los valores en cadena vacia asi me muestra todos los informes.
Le doy prioridad a los informes, el usuario ingresa para buscar un informe determinado, ya sea por autor o por tema o por zona o por año o por cualquiera de esas conbinaciones. El ultimo select lo habia puesto porq el id de autor lo saco de la tabla autores y con ese id voy a la tabla autores por informes, ya que el usuario ingresa un apellido.
Muchas Gracias!!! no sabes como me has ayudado!
ALE