Imprimir apenas registros desejados.
Pessoal, tenho um dbgrid que esta ligado a uma tabela de Nota_Fatura, gostaria de saber se posso mostrar neste DbGrig apenas os registros que o campo
´ Imprimir ´ esteja marcado como ´Sim´.
E também quando este registro for impresso ele saia do DbGrid, sem que saia da minha tabela.
Será que alguém pode me ajudar nesta?
Elmarinho.
P.S
Trabalho com Interbase e os componentes são IbTable e IbQuery.
´ Imprimir ´ esteja marcado como ´Sim´.
E também quando este registro for impresso ele saia do DbGrid, sem que saia da minha tabela.
Será que alguém pode me ajudar nesta?
Elmarinho.
P.S
Trabalho com Interbase e os componentes são IbTable e IbQuery.
Peninha
Curtidas 0
Respostas
Aroldo Zanela
01/10/2004
Colega,
Usando a query abaixo vai produzir o resultado que você deseja. Após efetuar a atualização (Imprimir := ´Não´), basta fechar e abrir a query novamente.
Usando a query abaixo vai produzir o resultado que você deseja. Após efetuar a atualização (Imprimir := ´Não´), basta fechar e abrir a query novamente.
select * from tabela where imprimir = ´Sim´
GOSTEI 0
Peninha
01/10/2004
Caro Aroldo, infeliamente não consegui fazer que funcione com a sua dica, será que poderia me explicar melhor.
Peninha.
Peninha.
GOSTEI 0
Danielclubedelphi
01/10/2004
Na sua tabela tem um campo ´imprimir´ ? Então, quando vc acaba de imprimir um registro, vc vai no banco e grava um ´não´ nesse campo... e fecha a query e abre novamente... ai só vão aparecer os campos que tem o ´sim´.
É exatamente o que o Aroldo disse...
É exatamente o que o Aroldo disse...
GOSTEI 0
Peninha
01/10/2004
Amigo não sou experiente em Delphi, portanto estou tentando desta forma:
Só que não esta funcionando.
Causa um erro com o commando WHERE.
Peninha.
begin With DmBasedados.IBQ_NotaFatura Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_NotaFatura Where Numero_Fatura =:ParamNumFatura´); Sql.Add(´Where Imprimir = S´); ParamByname(´ParamNumFatura´).AsInteger:=DbGrid1.Fields[0].asInteger; Open; DmBasedados.IBTab_NotaIMPRIMIR.AsString:=´N´; Close; End;
Só que não esta funcionando.
Causa um erro com o commando WHERE.
Peninha.
GOSTEI 0
Aroldo Zanela
01/10/2004
Colega,
Não entendi exatamente seu código, mas o erro em relação ao WHERE e a existência de duas declarações e falta do operador AND.
Exemplo:
Não entendi exatamente seu código, mas o erro em relação ao WHERE e a existência de duas declarações e falta do operador AND.
Exemplo:
begin With DmBasedados.IBQ_NotaFatura Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_NotaFatura Where Numero_Fatura =:ParamNumFatura´); Sql.Add(´and Imprimir = ´ + QuotedStr(´S´)); ParamByname(´ParamNumFatura´).AsInteger:=DbGrid1.Fields[0].asInteger; Open; DmBasedados.IBTab_NotaIMPRIMIR.AsString:=´N´; Close; End;
GOSTEI 0
Peninha
01/10/2004
Amigos, vou tentar explicar novamente.
Tenho uma Tabela um form que gera as notas a serem impressas. Em outro form tenho um DbGrid que mostra mostra todas as notas geradas, mas gostaria que o DbGrid mostrasse apenas as notas que o ´campo´ Imprimir estivessem marcadas com o ´S´ as que estiverem marcadas com ´N´ não seria preciso mostrar. E mais, todas as notas que forem mandadas para impressão saissem do DbGrig, ou seja, se não houver notas marcadas com o campo ´Imprimir´ em ´S´ então o DbGrid tem que estar limpo sem apresentar nenhum registro.
Já tentei algums formas de Query mas não consegui.
Se ainda não fui claro, favor pedir mais detalhes.
Peninha.
Tenho uma Tabela um form que gera as notas a serem impressas. Em outro form tenho um DbGrid que mostra mostra todas as notas geradas, mas gostaria que o DbGrid mostrasse apenas as notas que o ´campo´ Imprimir estivessem marcadas com o ´S´ as que estiverem marcadas com ´N´ não seria preciso mostrar. E mais, todas as notas que forem mandadas para impressão saissem do DbGrig, ou seja, se não houver notas marcadas com o campo ´Imprimir´ em ´S´ então o DbGrid tem que estar limpo sem apresentar nenhum registro.
Já tentei algums formas de Query mas não consegui.
Se ainda não fui claro, favor pedir mais detalhes.
Peninha.
GOSTEI 0
Otto
01/10/2004
então..
funcionou?!
Query1.Close; Query1.SQL.Text := ´select * from tabela where imprimir = ´+QuotedStr(´S´); Query1.Open
funcionou?!
GOSTEI 0
Peninha
01/10/2004
Caro amigo, tentei com seu código mas não funcionou.
Fiz desta forma:
E também não funcionou, não consigo nem se quer rodar o programa.
Gera este erro.
Peninha
Fiz desta forma:
DmBasedados.IBQ_NotaFatura.Close; DmBasedados.IBQ_NotaFatura.SQL.Clear; DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´S´´); DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´S´ And Impresso=´N´´); DmBasedados.IBQ_NotaFatura.Refresh; Open;
E também não funcionou, não consigo nem se quer rodar o programa.
Gera este erro.
[Error] U_Notas_geradas.pas(38): ´)´ expected but identifier ´S´ found
Peninha
GOSTEI 0
Rjun
01/10/2004
Faz da seguinte maneira :
DmBasedados.IBQ_NotaFatura.Close;
DmBasedados.IBQ_NotaFatura.SQL.Clear;
DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´´S´´´);
DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´´S´´ And Impresso=´´N´´´);
DmBasedados.IBQ_NotaFatura.Refresh;
Open;
DmBasedados.IBQ_NotaFatura.Close;
DmBasedados.IBQ_NotaFatura.SQL.Clear;
DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´´S´´´);
DmBasedados.IBQ_NotaFatura.SQL.Add(´Select * From Tab_NotaFatura Where Imprimir=´´S´´ And Impresso=´´N´´´);
DmBasedados.IBQ_NotaFatura.Refresh;
Open;
GOSTEI 0
Peninha
01/10/2004
Bom galera fiz assim.
Só que ele esta limpando o conteudo do meu campo na minha tabela.
Quando vou la tabela, esta sem o nome do cliente.
Peninha.
With DmBasedados.IBQ_NotaFatura Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_NotaFatura Where Nome_RazaoSocial =:ParamNome´); ParamByname(´ParamNome´).AsString:=DbGrid1.Fields[0].AsString; Open; End; DbGrid1.Fields[0].Clear; Application.CreateForm(TFrmRel_NotaFatura,Frmrel_NotaFatura); FrmRel_NotaFatura.QuickRep1.Preview;
Só que ele esta limpando o conteudo do meu campo na minha tabela.
Quando vou la tabela, esta sem o nome do cliente.
Peninha.
GOSTEI 0
Kenshindigital
01/10/2004
tente (so refiz sua sintaxe, não mudei o código)
begin With DmBasedados.IBQ_NotaFatura Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_NotaFatura Where (Numero_Fatura =:ParamNumFatura)and (Imprimir = ´´S´´)´); ParamByname(´ParamNumFatura´).AsInteger:=DbGrid1.Fields[0].asInteger; Open; DmBasedados.IBTab_NotaIMPRIMIR.AsString:=´N´; Close; End;
GOSTEI 0
Peninha
01/10/2004
Não amigo, infelizmente não funcionou.
Peninha.
Peninha.
GOSTEI 0