Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosmoreira16

Filtrar consulta e mostrar no DBGRID - Dephi 7 e Firebird 2.1

Recommended Posts

Sou iniciante em programação e uso Delphi 7 com Firebird 2.1.

Estou desenvolvento um programa multi-empresas para pagamento de salários.

Todas as tabelas já estão criadas e gravando.

Preciso gerar uma consulta, filtrando pelo funcionário e popular um DBGRID com os pagamentos feitos a este funcionário apenas.

Depois disto, selecionar uma linha (1 lançamento) ou mais, e gerar um relatório.

 

Minha dificuldade está em popular o DBGrid já com os filtros.

 

Utilizo um DataModule com um SQLConnection, SimpleDataSet para as conexões.

Para imprimir o recibo de pagamento, uso um SimpleDataSet e um DataSource.

 

Aceito sugestões, orientações e até críticas sem problemas. Não consigo avançar do ponto onde parei.

 

Desde já, agradeço a todos.

 

"Reter o conhecimento é frear o desenvolvimento".

Marcos Moreira - marcosmoreira16@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tenho a instrução sql montada.

O que eu preciso fazer é mostrar os dados em um DBGrid da seguinte maneira:

Tenho uma tela onde efetuo lançamentos para funcionários;

Em outra tela, tenho um DBGrid onde quero mostrar os lançamentos feitos para os funcionários. Mas nesta tela, quero informar o funcionário e popular o DBGrid apenas com os lançamentos deste funcionário, ou seja, fazer um select pagamentos from pagamentos where cdfuncionário = edit1.text. Mas não consigo passar o conteúdo do edit1.text como parâmetro.

Eu uso o SQLCONNECTION do DBEXPRESS.

 

Mas como sou iniciante, aceito sugestões.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta foi a instrução que eu montei e funciona no editor do IBEXPERT.

Eu gostaria de clicar no botão para carregar o DGBrid.

 

Se houver qualquer dica, nem que eu tenha que incluir novos componentes.

 

procedure TfrmRep1099.btnSelectClick(Sender: TObject);

var

qryS_Payment : TSimpleDataSet;

begin

qryS_Payment := TSimpleDataSet.Create(nil);

qryS_Payment.Connection := DM.SQLConnectionPFC;

try

qryS_Payment.DataSet.CommandText :=

'select P.CdPayment, ' +

' P.DtPayment, ' +

' P.DtDoc, ' +

' P.CdClient, ' +

' C.DeClient, ' +

' P.CdEmployee, ' +

' E.DeEmployee, ' +

' P.TpPayment, ' +

' P.ValueType, ' +

' P.Amount, ' +

' P.ValueDoc, ' +

' P.NrDoc, ' +

' P.StartDate, ' +

' P.EndDate, ' +

' P.Comments, ' +

' P.Log1099 ' +

'from Payment P ' +

' join Client C on P.CdClient = C.CdClient ' +

' join Employee E on P.CdEmployee = E.CdEmployee ' ;

 

'where P.CdEmployee = :pCdEmployee ';

 

qryS_Payment.Open;

finally

Result := qryS_Payment;

end;

end;

 

Valeu.

 

"Reter o conhecimento é frear o desenvolvimento".

Marcos Moreira - marcosmoreira16@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia usar um SQLquery no datamodule e no seu formulário conecte o datasource (onde o dbgrid está conectado) a essa query.

dai você pode fazer suas consultas com filtros através dessa query...

 with datamodule.SQLQuery do
   begin
     Close;
     SQL.Clear;
     SQL.Add('SELECT * FROM SI_MARCA WHERE blablabla = '+seucampo);
     Open;
 end;
dai da um refresh e ja vai direto pro dbgrid.

 

Eu prefiro fazer tudo na mão, ou seja, usar um stringgrid e fazer os filtros na mão, o dbgrid é muito limitado...

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.