Exportação para Excel quebrada por grupo
Salve galera!
Seguinte estou tendo em fazer uma exportação para o Excel quebrando os dados por grupo.
Exemplo. Tenho uma tabela clientes e quero que traga na exportação quebrando por cidade...
Tipo:
São Paulo
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Rio de Janeiro
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Estou captando dados de uma Query de um relatório.
Se alguém ai tiver uma ideia sera muito bem vinda.
Sds a todos.
Seguinte estou tendo em fazer uma exportação para o Excel quebrando os dados por grupo.
Exemplo. Tenho uma tabela clientes e quero que traga na exportação quebrando por cidade...
Tipo:
São Paulo
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Rio de Janeiro
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Estou captando dados de uma Query de um relatório.
Se alguém ai tiver uma ideia sera muito bem vinda.
Sds a todos.
Hugo Henrick
Curtidas 0
Respostas
Perivaldo Martins
14/02/2013
Salve galera!
Seguinte estou tendo em fazer uma exportação para o Excel quebrando os dados por grupo.
Exemplo. Tenho uma tabela clientes e quero que traga na exportação quebrando por cidade...
Tipo:
São Paulo
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Rio de Janeiro
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Estou captando dados de uma Query de um relatório.
Se alguém ai tiver uma ideia sera muito bem vinda.
Sds a todos.
Seguinte estou tendo em fazer uma exportação para o Excel quebrando os dados por grupo.
Exemplo. Tenho uma tabela clientes e quero que traga na exportação quebrando por cidade...
Tipo:
São Paulo
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Rio de Janeiro
Nome: Telefone:
Fulano de tal 115255656
Astrogildo Silva 115566524
Estou captando dados de uma Query de um relatório.
Se alguém ai tiver uma ideia sera muito bem vinda.
Sds a todos.
Como está montada essa query? Ela já traz essa agrupamento ou não? Passe mais detalhes por gentileza.
Boa sorte e bons códigos!
GOSTEI 0
Hugo Henrick
14/02/2013
Ola Martins.
Na verdade esse foi o exemplo mais fácil que encontrei. Pois tenho um relatório que imprime esses dados.
A exportação teria que ser separada pela conta e seu devido grupo, como fiz no exemplo citado anteriormente.
Minha Query esta montada asssim:
Na verdade esse foi o exemplo mais fácil que encontrei. Pois tenho um relatório que imprime esses dados.
A exportação teria que ser separada pela conta e seu devido grupo, como fiz no exemplo citado anteriormente.
Minha Query esta montada asssim:
select M.COD_MOVIMENTO, M.DT_FATURAMENTO, M.DT_BAIXA,
M.DT_VENCIMENTO AS DATA, M.TIPO_DC, C.NOME AS CLIENTE, M.HISTORICO, M.NUM_DOC,
I.VALOR, CT.DESCRICAO AS CONTA, GP.DESCRICAO AS GRUPO,
GP.TIPO, CT.COD_CONTA, GP.COD_GRUPO_RD
from TBL_ITENS_MOV I
INNER JOIN TBL_MOVIMENTO M ON (I.CH_COD_MOVIMENTO = M.COD_MOVIMENTO)
INNER JOIN TBL_CONTAS CT ON (CT.COD_CONTA = I.CH_COD_CONTA)
LEFT JOIN TBL_GRUPO_RD GP ON (GP.COD_GRUPO_RD = CT.CH_COD_GRUPO_RD)
INNER JOIN TBL_CLIENTE C ON (C.CODIGO = M.CH_COD_CONTATO)
GOSTEI 0
Hugo Henrick
14/02/2013
A forma mais lógica que consegui chegar foi esta, mas está trazendo apenas a primeira conta.
Segue a função que monta o arquivo:
Segue a função que monta o arquivo:
procedure TFRel.Exporta_Excel;
var Excel : variant;
nLinha, vCol, i, vCodMovAnt, vCodConta:Integer;
begin
if SaveDialog1.Execute
then begin //************* EXPORTANTO PARA O EXCEL ******************
Try
Screen.Cursor := crHourGlass;
Excel := CreateOleObject('Excel.Application');
Excel.Visible := False;
Excel.Workbooks.Add;
qryPrincipal.First;
vCodConta := 0;
While (Not qryPrincipal.Eof) Do
begin
if vCodConta <> qryPrincipalCOD_CONTA.AsInteger then
begin
nLinha:=1;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,1] := qryPrincipalCONTA.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,2] := qryPrincipalGRUPO.AsString;
vCodConta := qryPrincipalCOD_CONTA.AsInteger;
end;
Excel.WorkBooks[1].Sheets[1].Cells[2,1] := 'Dt. Fat.';
Excel.WorkBooks[1].Sheets[1].Cells[2,2] := 'Contato';
Excel.WorkBooks[1].Sheets[1].Cells[2,3] := 'Histórico';
Excel.WorkBooks[1].Sheets[1].Cells[2,4] := 'Nr. Doc';
Excel.WorkBooks[1].Sheets[1].Cells[2,5] := 'Valor';
Excel.WorkBooks[1].Sheets[1].Cells[2,6] := 'Tipo';
Excel.WorkBooks[1].Sheets[1].Cells[2,7] := 'Dt. Venc.';
Excel.WorkBooks[1].Sheets[1].Cells[2,8] := 'Dt. Baixa';
qryPrincipal.Next;
// Percorre o arquivo ...
nLinha := 3;
qryPrincipal.First;
While (Not qryPrincipal.Eof) Do
begin
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,1] := qryPrincipalDT_FATURAMENTO.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,2] := qryPrincipalCLIENTE.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,3] := qryPrincipalHISTORICO.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,4] := qryPrincipalNUM_DOC.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,5] := FormatCurr(Masc_Estoque, qryPrincipalVALOR.AsCurrency);
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,6] := qryPrincipalTIPO.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,7] := qryPrincipalDATA.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[nLinha,8] := qryPrincipalDT_BAIXA.AsString;
INC(nLinha);
qryPrincipal.Next;
end;
end;
// Salva e Fecha ...
Excel.Columns.AutoFit;
Excel.WorkBooks[1].SaveAs(SaveDialog1.FileName);
Excel.WorkBooks[1].Close;
Finally
Screen.Cursor := crDefault;
End;
Beep; Beep;
Messagedlg('Exportação para Excel terminada.',mtInformation,[mbOk],0);
end;
qryPrincipal.Close;
//**************** FIM EXPORTAÇÃO PARA EXCEL
end;
GOSTEI 0
Perivaldo Martins
14/02/2013
Uma pergunta, no GRID os dados são exibidos como vc deseja? Vc está conseguindo exibi-los no grid agrupados?
Boa sorte e bons códigos!
Boa sorte e bons códigos!
GOSTEI 0