Abrir um grid consulta com FILTRO aplicado

Pessoal,

Estou com a seguinte situação:

Tenho um grid consulta onde são apresentados os registros de uma tabela “DESPESAS”.

Esta tabela terá muitos registros e eu quero mostrar apenas os registros dos últimos 30 dias como se o usuário tivesse clicado no botão “PESQUISA AVANÇADA”, preenchido o intervalo de datas e clicado novamente o botão “PESQUISA AVANÇADA” para aplicar o filtro.

Não quero abrir o grid no módulo “FILTRO” para usuário fornecer o intervalo de datas e depois clicar “PESQUISA AVANÇADA”, quero abrir o grid já FILTRADO com o intervalo de datas.

Caso o usuário queira alterar o intervalo de datas posteriormente ou mesmo fornecer mais critérios para o filtro poderá fazer, aí sim, clicando “PESQUISA AVANÇADA” e reaplicando o filtro.

Alguma sugestão?

Obrigado.

James.

James,

Se entendi bem o teu caso, o lance seria já fazer o filtro dos últimos 30 dias na query principal, e no filtro, usar a macro SC_WHERE_CURRENT (acho que é isso), pra modificar o filtro do SQL principal e fazer o que precisa…

Obs.: Não testei.

Kleyber,

Eu não estava querendo mexer no SQL principal da consulta por meio de macros, mas se eu não encontrar a solução terei que ir por este lado mesmo.

O objetivo era utilizar o filtro como se o usuário tivesse aberto a aplicação em modo GRID, clicado em “PESQUISA AVANÇADA”, fornecido o intervalo de datas e depois clicado em “PESQUISA AVANÇADA” para aplicar o filtro.

Até consegui definir os critérios (intervalo de datas) do filtro utilizando o fonte abaixo no evento onScriptInit do Filtro quando faço a aplicação ser executada em modo FILTRO:

{DtDespesa_dia}= date(“d”,strtotime(date(“Y/m/d”)."-1 month"));
{DtDespesa_mes}= date(“m”,strtotime(date(“Y/m/d”)."-1 month"));
{DtDespesa_ano}= date(“Y”,strtotime(date(“Y/m/d”)."-1 month"));

{DtDespesa_input_2_dia}= date(“d”);
{DtDespesa_input_2_mes}= date(“m”);
{DtDespesa_input_2_ano}= date(“Y”);

Só falta fazer um CLICK Automático no botão “PESQUISA AVANÇADA”.

Obrigado por enquanto pela sua ajuda.

James.

Se voce quer um filtro default para sua consulta o procedimento é usar a macro.

Não a SC_WHERE_CURRENT.

if (empty({sc_where_atual})){
sc_select_where(add) = “where campoX > [variavel_global]”;
}
else{
sc_select_where(add) = “AND campoX > [variavel_global]”;
}