Como imprimir conteudo DBgrid
Estou usando um componente DBgrid para mostrar o resultado de um filtro de query. O proecesso de filtrar na query demora cerca de 2 minutos por causa da quantidade de dados do DB. Gsotaria de saber como faço para imprimir no Quick report o conteudo filtrado que está no DBgrid ?
Reginaldo174
Curtidas 0
Respostas
Paulo_amorim
22/07/2004
Olá
Se o DBGrid está mostrando, então a Query já está aberta...
Ligue o QR à query e imprima pelo DataSet...
Espero que ajude
Até+
Se o DBGrid está mostrando, então a Query já está aberta...
Ligue o QR à query e imprima pelo DataSet...
Espero que ajude
Até+
GOSTEI 0
Reginaldo174
22/07/2004
o Grid foi montado via programação conforme determinada pesquisa realizada via Query. A query filtrada só possui parte dos registro do grid.
Então teria que imprimir realmente o Dbgrid, ou seja pegar linha por linha e coluna por coluna e jogar no QuickRep1. Sabe como fazer isto ?
Então teria que imprimir realmente o Dbgrid, ou seja pegar linha por linha e coluna por coluna e jogar no QuickRep1. Sabe como fazer isto ?
GOSTEI 0
Vagner.oliveira
22/07/2004
o Grid foi montado via programação conforme determinada pesquisa realizada via Query. A query filtrada só possui parte dos registro do grid.
Então teria que imprimir realmente o Dbgrid, ou seja pegar linha por linha e coluna por coluna e jogar no QuickRep1. Sabe como fazer isto ?
É exatamente isso que gostaria de fazer. Como pegar todos os dados de um DBGRid e por para imprimi-los no quick report?
GOSTEI 0
Paullsoftware
22/07/2004
vc pode criar uma tabela temporária com os dados do dbgrid e depois liga o QR a mesma. Um vez tive que fazer isso a um tempo atrás não tenho o código mais essa é uma ideia
GOSTEI 0
Renato.pavan
22/07/2004
o Grid foi montado via programação conforme determinada pesquisa realizada via Query. A query filtrada só possui parte dos registro do grid.
Então teria que imprimir realmente o Dbgrid, ou seja pegar linha por linha e coluna por coluna e jogar no QuickRep1. Sabe como fazer isto ?
Colega, eu criei um DBGrid herdeiro do DBGrid padrao do delphi q tem esse recurso, ele imprime os dados do grid em FortesReport alem de outros recursos, caso queira te envio o componente mas vc precisa de ter o Fortes Instalado tambem.
Abaixo a rotina que usei pra imprimir com Fortes, creio que com poucas alterações vc consiga adaptar para o quick.
procedure TRPDBGrid.MontaRptFortes; var i, posicao : Integer; coluna, titulo, subTitle: TRLLabel; campo : TRLDBText; begin posicao := 5; if DataSource = nil then Exit; FortesReport := TFortesReport.Create(nil); try with FortesReport do begin RLReport.DataSource := DataSource; if Report.Title <> ´´ then begin titulo := TRLLabel.Create(FortesReport); titulo.Font := FReport.FFontTitle; titulo.Align := faCenterTop; titulo.Parent := RLTitle; titulo.Caption := FReport.Title; titulo.Left := 0; end else RLTitle.Visible := False; if Report.SubTitle <> ´´ then begin subTitle := TRLLabel.Create(FortesReport); subTitle.Font := FReport.FFontSubTitle; subTitle.Align := faCenter; subTitle.Parent := RLSubTitle; subTitle.Caption := FReport.SubTitle; subTitle.Top := 3; subTitle.Left := 0; end else RLSubTitle.Visible := False; for i := 0 to pred(Columns.Count) do begin coluna := TRLLabel.Create(FortesReport); coluna.Parent := RLColumnHeader; coluna.Caption := Columns[i].Title.Caption; coluna.Top := 3; coluna.Left := posicao; coluna.Font.Style := [fsBold]; campo := TRLDBText.Create(FortesReport); campo.Parent := RLDetail; campo.DataSource := DataSource; campo.DataField := Columns[i].Field.FieldName; campo.Left := posicao; campo.Top := 2; campo.Font.Size := 8; posicao := posicao + Columns[i].Width; end; RLReport.Preview; end; finally FortesReport.Free; FortesReport := nil; end; end;
GOSTEI 0