[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 594: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 650: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 113: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
Fórum Xmaker • Filtro em relatório \
Página 1 de 2

Filtro em relatório \

Enviado: Julho 15th, 2016, 10:18 am
por Leão
Olá, tenho um relatório que preciso filtrar, veja detalhe:

01 - Tabela Unidade
Campo COD_UNIDADE

02 - Tabela de Linha
Campos COD_UNIDADE
COD_LINHA


03 - Tabela Movimentos
Campos COD_UNIDADE
COD_LINHA

================[ no relatório ]======================

O Usuário seleciona a Unidade;
ao filtrar a Linha, visualiza todas as linhas, preciso filtrar conforme
a Unidade informada COD_UNIDADE


procedure TFormDigitacao2.ConstroiSql;
var
I: Integer;
begin
{04-Início do Bloco X-Maker. Modificações não serão preservadas}
DProdutores.ChaveIndice := 'Produtores.COD_PRACA,Produtores.COD_LINHA,Pracas.NOME';
DProdutores.Filtro.Clear;
DProdutores.Filtro.Add('(Produtores.COD_PRACA = :XNumEdit1)');
DProdutores.Filtro.Add('AND (Produtores.COD_LINHA = :XNumEdit2)');
DProdutores.Filtro.Add('AND (Produtores.ATIVO LIKE '+#39+'A%'+#39+')');
DProdutores.AtualizaSql(False);
Parametros(DProdutores);
DProdutores.Open;
frDBDataSet.DataSet := DProdutores;
{99-Final do Bloco X-Maker. Modificações não serão preservadas}
end;



E em um formulário avulso, como aplicar?

Obrigado,

Leão

Re: Filtro em relatório \

Enviado: Julho 19th, 2016, 2:56 pm
por vinizioWOW
Use a opção SQL do editor de relatórios (conforme anexo) e faça um select avulso usando joins entre as 3 tabelas.

Re: Filtro em relatório \

Enviado: Julho 19th, 2016, 3:19 pm
por Leão
Olá Vinizio, não dar certo porque estou usando um botão em um formulário avulso, conforme informei fiz isso
na tabela deu certo, mas formulário avulso não tenho achado solução.

Obrigado,
Leão

Re: Filtro em relatório \

Enviado: Julho 21st, 2016, 3:32 pm
por vinizioWOW

Re: Filtro em relatório \

Enviado: Julho 21st, 2016, 6:08 pm
por Leão
Olá Vinizio, na verdade o detalhe não é em criar a instrução sql, é invocar a mesma em um botão no formulário de relatório.
Veja o detalhe:

Isso é um botão onde o usuário vai selecionar a Praça, que funciona certinho

procedure TFormRel_resumo33.XNumEdit1BtnClick(Sender: TObject);
begin

FormGridPesquisa := TFormGridPesquisa.Create(Application);
Try
FormGridPesquisa.Atalho := VK_F8;
FormGridPesquisa.Campo := TabGlobal.DLeites.COD_PRACA;
FormGridPesquisa.Avulso := True;
if FormGridPesquisa.ShowModal = mrOk then
XNumEdit1.Value := FormGridPesquisa.Resultado;
Finally
FormGridPesquisa.Free;
end;

end;


02 Essa aqui é segundo botão, ele tem que filtrar pela PRAÇA seleciona acima.

procedure TFormRel_resumo33.XNumEdit2BtnClick(Sender: TObject);
begin
FormGridPesquisa := TFormGridPesquisa.Create(Application);
Try
FormGridPesquisa.Atalho := VK_F8;
FormGridPesquisa.Campo := TabGlobal.DProdutores.COD_LINHA;
FormGridPesquisa.Avulso := True;
if FormGridPesquisa.ShowModal = mrOk then
XNumEdit2.Value := FormGridPesquisa.Resultado;
Finally
FormGridPesquisa.Free;
end;

end;



É essa a questão.






ok, agradeço e aguardo alguém...

Leão

Re: Filtro em relatório \

Enviado: Julho 29th, 2016, 4:58 pm
por hudnet
Posta um print da tela ai pra vermos.

Re: Filtro em relatório \

Enviado: Agosto 1st, 2016, 8:39 am
por Leão
Em anexo.
Tela Filtro.jpg


Obrigado,
Leão

Re: Filtro em relatório \

Enviado: Agosto 4th, 2016, 8:52 am
por hudnet
Leão o que você quer é que ao clicar na lupa para pesquisar a linha o grid só traga registros conforme a Unidade/Praça informada?

Re: Filtro em relatório \

Enviado: Agosto 4th, 2016, 11:17 am
por Leão
Sim, ao selecionar a Unidade, depois clicar no botão Linha, visualizar somente as linhas da unidade selecionada.

Re: Filtro em relatório \

Enviado: Agosto 4th, 2016, 1:00 pm
por hudnet
Leão coloca no TabGlobal.DProdutores.COD_LINHA.FiltroFixo o filtro que você precisa, assim quando o gridpesquisa for acionado ele irá adicionar esta parte na hora de montar o sql da pesquisa.

Mais ou menos assim, no botão do xnumediti2BtnClick

....
FormGridPesquisa.Atalho := VK_F8;
FormGridPesquisa.Campo := TabGlobal.DProdutores.COD_LINHA;
TabGlobal.DProdutores.COD_LINHA.FiltroFixo.Text := '(PRODUTORES.COD_PRACA= '+XnumEdit1.Text+') ';
FormGridPesquisa.Avulso := True;
....

Depois vc volta este filtro fixo para o valor anterior ou limpa se ele estivesse só limpo, pois irá interfirir em outros processos que chamarem o gridpesquisa por este campo.
TabGlobal.DProdutores.COD_LINHA.FiltroFixo.Text := FiltroAnterior;