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

Fazer Contagem No Grid.


robinhocne

Pergunta

10 respostass a esta questão

Posts Recomendados

  • 0
Guest --Jonas --
Olá pessoal,

Estou querendo fazer uma contage em meu programa, é assim tenho uma tabela para a marcação de aulas e eu gostaria de quando eu marcar as aulas o programa fazer a contage das aulas e mostar em um grid e em edits.

Alguém pode me ajudar?

Use uma query para isso

procedure TForm1.Button1Click(Sender: TObject);
var i,x : integer; 
begin
   x := 0;
   for i := 1 to Query1.RecordCount do
      begin
         x := x + Query1Aulas.Value;
         Edit1.Text := 'Total de Aulas' + inttostr(x);

      end
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Jonas mas, não deu certo vou mostrar um exemplo do visual:

Ord.    Data       Horário   Instrutor
01    13/08/07     09:00        02
02    14/08/07     09:00        02
03    15/08/07     09:00        02
04    16/08/07     09:00        02
05    17/08/07     09:00        02

Então esse é o visual do meu grid aparece as aulas marcadas, agora gostaria de saber como posso colocar esses numeros de ordem.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Crie numa query a seguinte instrução SQL

Select * from NOME_ARQUIVO

Order by Ord, Data, Horario, Instrutor

Vai aparecer no dbgrid na ordem que voce esta querendo

Link para o comentário
Compartilhar em outros sites

  • 0
Crie numa query a seguinte instrução SQL

Select * from NOME_ARQUIVO

Order by Ord, Data, Horario, Instrutor

Vai aparecer no dbgrid na ordem que voce esta querendo

não deu certo!

Como ele vai contar? Eu tenho que mandar ele fazer alguma função?

Só assim não resolveu!

Me especifique melhor!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Vamos supor que seu arquivo chama-se AulasDadas e que contenha os campos Ord, Data, Horario e Instrutor

voce vai pegar um componetente Query1 e vai colocar o codigo na SQL

Select * from AulasDadas

Order by Ord, Data, Horario, Instrutor // order by faz a ordenação dos campos na sequencia colocada

Agora vamos supor que voce queira contar quantas aulas o instrutor "02" deu, então num botao voce coloca o codigo de acordo com o que voce quer que ele faça

procedure TForm1.Button1Click(Sender: TObject);
var i,x : integer; 
begin
   x := 0;
   for i := 1 to Query1.RecordCount do  // varrer todo o aquivo
      begin
         if Query1Instrutor.Value = '02' then //  testar se é o instrutor 02
            x := x + 1;  // contar o total de aulas
      end;
      Edit1.Text := 'Total de Aulas Dadas pelo Instrutor 02  = ' + inttostr(x);

end;

Outra forma seria voce fazer isso na query automaticamente selecionando o instrutor fixo

Select * from AulasDadas

where Instrutor = '02'

Order by Ord, Data, Horario, Instrutor

Outra forma seria voce fazer isso na query automaticamente selecionando o instrutor variavel

Select * from AulasDadas

where Instrutor = :Inst // parametro a ser passado via codigo em tempo de execução

Order by Ord, Data, Horario, Instrutor

Link para o comentário
Compartilhar em outros sites

  • 0

Jonas, estou achando que este campo Ord não existe na tabela do robinhocne. Está parecendo a mesma situação o colega vms questionou em junho.

robinhocne, se realmente este campo Ord não existe na sua tabela, então dê uma olhada neste post. A idéia a de utilizar um campo calculado (neste caso você criaria um chamado Ord, por exemplo) e atribuiria a ele o valor de RecNo.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Jonas, estou achando que este campo Ord não existe na tabela do robinhocne. Está parecendo a mesma situação o colega vms questionou em junho.

robinhocne, se realmente este campo Ord não existe na sua tabela, então dê uma olhada neste post. A idéia a de utilizar um campo calculado (neste caso você criaria um chamado Ord, por exemplo) e atribuiria a ele o valor de RecNo.

Abraços

Exatamente o mesmo caso Micheus, mas o Problema que eu não entendi essa parte

Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).

Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?

Onde eu faço isso?

Link para o comentário
Compartilhar em outros sites

  • 0
Exatamente o mesmo caso Micheus, mas o Problema que eu não entendi essa parte
Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).

Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?

se era o seu caso, esta parte é justamente a que não lhe interessa.

Link para o comentário
Compartilhar em outros sites

  • 0
Exatamente o mesmo caso Micheus, mas o Problema que eu não entendi essa parte
Mas com relação ao título do tópico, tenho a dizer que as colunas do DBGrid já são, de certo modo, numeradas. Basta que você utilize a propriedade Columns. Ela é uma lista de colunas (TColumn).

Assim, se você utilizar DBGrid.Columns[indice], você observa que indice já funciona como uma numeração, não?

se era o seu caso, esta parte é justamente a que não lhe interessa.

E qual seria ?

Link para o comentário
Compartilhar em outros sites

  • 0
E qual seria ?
Justamente aquela que indiquei no post (voce leu o comentário que fiz no início do tópico, não o que eu indiquei a você <_<). Mas, vou colocar aqui denovo:
vms, você poderia tentar utilizar um campo calculado, do tipo inteiro, e para este campo você moveria o RecNo.

Supondo o nome da coluna NumOrdem (vamos deixar o campo Numero do seu banco em off), você no evento OnCalcField você faria:

TabTesteNumOrdem.Value := TabTeste.RecNo;

Este outro comentário, também está lá no mesmo post:

Se tiver dúvida de como criar o campo calculado dá uma olhada neste tutorial e pesquise pelo texto: "DataModule:" (sem as aspas), é o segundo item nesta sessão.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...