Bom dia pessoal,
Estou tendo dificuldades em passar um filtro fixo para uma tabela de vendas no inicio da execução do formulário. Tenho a necessidade de filtrar somente as vendas, por exemplo, dos últimos 60 dias. Mas tenho que deixar uma opção para o cliente alterar esse filtro caso seja necessário consultar uma venda anterior ao filtro.
Motivo: Cliente tem muitos registros no banco e isso tem ocasionado lentidão, travamento e fechamento do programa do nada.
Agradeço a atenção de todos..
Att: Vinício Rocha
Passar Filtro fixo ao iniciar um Formulário
-
- Mensagens: 98
- Registrado em: Abril 5th, 2011, 2:35 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Passar Filtro fixo ao iniciar um Formulário
Desenvolvedor
Logus Informática
Formiga - MG
-
- Mensagens: 244
- Registrado em: Dezembro 22nd, 2010, 1:05 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Passar Filtro fixo ao iniciar um Formulário
Olá,
O filtro pode ser assim:
Exemplo de filtro de registros dos últimos 60 dias
(VENDAS.DATA >= '+#39+datasql(dataatual-60)+#39+')
Para o usuário poder escolher uma outra data a ser filtrata coloque no seu formulário um XdateEdit, e no evento OnChange dele coloque o código exemplo.(mude conforme sua necessidade):
var
Oper, Delimit_E,Delimit_D: String;
mov: TTabela;
juncao:string;
begin
mov:=TabGlobal.DRESERVA_PEDIDO;//tabelaprincipal;
Oper := '=';
Delimit_E := #39+'';
Delimit_D := #39;
mov.Filtro.Clear;
{ tratamento Descrição filtro }
if trim(Xdateedit1.text)='/ /' then
exit;
if not(Xdateedit1.TEXT='') THEN
begin
mov.Filtro.text:='VENDAS.DATA ='+Delimit_E+datasql(xdateedit1.datevalue)+ Delimit_D ;
juncao:=' AND ';
end
else juncao:='';
{ fim tratamento Descrição }
mov.AtualizaSql;
mov.Refresh;
end;
O filtro pode ser assim:
Exemplo de filtro de registros dos últimos 60 dias
(VENDAS.DATA >= '+#39+datasql(dataatual-60)+#39+')
Para o usuário poder escolher uma outra data a ser filtrata coloque no seu formulário um XdateEdit, e no evento OnChange dele coloque o código exemplo.(mude conforme sua necessidade):
var
Oper, Delimit_E,Delimit_D: String;
mov: TTabela;
juncao:string;
begin
mov:=TabGlobal.DRESERVA_PEDIDO;//tabelaprincipal;
Oper := '=';
Delimit_E := #39+'';
Delimit_D := #39;
mov.Filtro.Clear;
{ tratamento Descrição filtro }
if trim(Xdateedit1.text)='/ /' then
exit;
if not(Xdateedit1.TEXT='') THEN
begin
mov.Filtro.text:='VENDAS.DATA ='+Delimit_E+datasql(xdateedit1.datevalue)+ Delimit_D ;
juncao:=' AND ';
end
else juncao:='';
{ fim tratamento Descrição }
mov.AtualizaSql;
mov.Refresh;
end;
Att,
Gustavo Barreto
Gustavo Barreto
-
- Mensagens: 31
- Registrado em: Julho 7th, 2012, 5:04 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Passar Filtro fixo ao iniciar um Formulário
To com o mesmo problema fiz conforme o exemplo e apareceu o seguiinte erro em anexo
Minha Tabela= Dprocesso.Aviso é o campo data com 8 caracteres e gostaria de filtrar pela data atual os registros da tabela.
Minha Tabela= Dprocesso.Aviso é o campo data com 8 caracteres e gostaria de filtrar pela data atual os registros da tabela.
Você não está autorizado a ver ou baixar esse anexo.
Voltar para “Colaborações/Dicas, Artigos e Truques”
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes