Ir para conteúdo
Fórum Script Brasil
  • 0

Relatorios


Guest - khalil -

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

Bem eu faço assim:

procedure TForm1.Button1Click(Sender: TObject);
var
   Planilha, Planilha1, Planilha2     : olevariant;
   Lin, Col, contB, contNB, contT     : integer;
begin
    contB := 0;//contador de registros
    ExcelApplication1 := TExcelApplication.Create(nil);
    ExcelApplication1.Workbooks.Add(EmptyParam,0);
    ExcelApplication1.Caption := 'Relatório de Alunos Bloqueados.';
    ExcelApplication1.Visible[0] := True;
    Planilha := ExcelApplication1.Workbooks [1].Worksheets[1];
    //mescla, formata e mostra a data e a hora
    Planilha.Cells[1,1].Select;\\seleciona a celula
    Planilha.Cells[1,1].Font.Bold := True;\\coloca em negrito
    Planilha.Cells[1,1].Font.color := clblue;\\muda fonte para azul
    Planilha.Cells[1,1].Font.italic := True;\\muda fonte para italico
    Planilha.Cells[1,1].Font.size := 10;\\muda fonte para 10
    Planilha.Cells[1,1].Value := FormatDateTime('ddddddd',date)+' às '+FormatDateTime('hh:mm:ss',now);\\pega a hora e a data atual
    Planilha.range['A1:D1'].Mergecells := True;\\mescla as celulas
    //na terceira linha insere o titulo do relatorio, mescla e formata
    Planilha.Cells[3,1].Select;
    Planilha.Cells[3,1].Font.Bold := True;
    Planilha.Cells[3,1].Font.color := clred;
    Planilha.Cells[3,1].Font.size := 16;
    Planilha.Cells[3,1].Value := 'Relatório de Alunos Bloqueados';
    Planilha.range['A3:D3'].Mergecells := True;

    // Abre tabela
    Q_tb_alunos_bloqueados.Open;
    // Repetição de cabeçalho o Delphi vai colocar o nome do campo em
    // cada coluna, se for ADOQuery pode dar um apelido para cada campo
    for Col := 1 to Q_tb_alunos_bloqueados.FieldCount do
    begin
         Planilha.Cells[5,Col].Select;
         Planilha.Cells[5,Col].Font.Bold := True;
         Planilha.Cells[5,Col].Value := Q_tb_alunos_bloqueados.Fields[Col-1].DisplayLabel;
    end;
    // Inicializa na segunda linha
    Lin := 6;

    // Repetição onde vai inserir os dados da tabela até que seja final de arquivo
    Gauge1.MaxValue := 0;
    Gauge1.MaxValue := Q_tb_alunos_bloqueados.RecordCount;\\inicia o progresso
    while not ( Q_tb_alunos_bloqueados.Eof ) do
    begin
        for Col := 1 to Q_tb_alunos_bloqueados.FieldCount do
        begin
            Planilha.Cells[Lin,Col].Select;
            Planilha.Cells[Lin,Col].Value := Q_tb_alunos_bloqueados.Fields[Col-1].AsString;
        end;
        // Adiciona 1 a variável Lin e vai para o próximo registro da tabela
        inc(Lin);
        contB := contB + 1;\\contatado recebendo cadastros inseridos
        Q_tb_alunos_bloqueados.Next;
        Gauge1.Progress:=Gauge1.Progress + 1;\\acrese ao progresso

    end;
    lin := contB + 7;
    //na ultima linha mais 7 insere a quantidade inserida alem de, mescla e formata
    Planilha.Cells[lin,1].Select;
    Planilha.Cells[lin,1].Font.Bold := True;
    Planilha.Cells[lin,1].Font.color := clblue;
    Planilha.Cells[lin,1].Font.size := 10;
    Planilha.Cells[lin,1].Value := 'Total de Alunos Bloqueados:';
    Planilha.Cells[lin,4].Font.Bold := True;
    Planilha.Cells[lin,4].Font.color := clred;
    Planilha.Cells[lin,4].Font.size := 10;
    Planilha.Cells[lin,4].Value := IntToStr(contB);
    Planilha.range['A'+IntToStr(lin)+':'+'C'+IntToStr(lin)].Mergecells := True;
    Planilha.columns.autofit;\\auto ajusta as celulas
     // Fecha a tabela Q_tb_alunos_bloqueados e libera a aplicação Excel aberta da memória
    Q_tb_alunos_bloqueados.Close;
    if Gauge1.Progress = Gauge1.MaxValue then
    begin
      ShowMessage('Total de '+ IntToStr(contB)+ ' Alunos BLOQUEADOS');
    end;
    if MessageDlg('Deseja salvar?',mtConfirmation,[mbYES,mbNO],0 ) = mrYES then
    begin
      ForceDirectories('D:\INED-Centro\Relatórios');
      Planilha.SaveAs(FileName := 'D:\INED-Centro\Relatórios\Relatório de Alunos Bloqueados - '+FormatDateTime('dd.mm.yy',date)+' às '+FormatDateTime('hh.mm.ss',now)+'.xls');
      ShowMessage('Seu arquivo foi salvo em: '+#13+'D:\INED-Centro\Relatórios\'+#13+'Com o nome: '+#13+'Relatório de Alunos Bloqueados - '+FormatDateTime('dd.mm.yy',date)+' às '+FormatDateTime('hh.mm.ss',now)+'.xls' );
      ExcelApplication1.Quit;
    end
    else
    begin
      ShowMessage(' ATENÇÃO!'+#13+
      ' Não Esqueça de (SALVAR e FECHAR) ou (FECHAR)'+#13+
      ' a Planilha caso deseje GERAR um outro Relatório');
    end;
    Gauge1.MaxValue := 0;\\volta contador para o zero
    ExcelApplication1.Free;\\libera memoria
end

*** excelaplication1 na paleta server

**** campos da minha tabela(cartao,nome,matricula,motivo)

***** qualquer coisa rosricardo.jr@gmail.com

boa sorte

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...