Jump to content
Fórum Script Brasil
  • 0

Fazer Contagem No Grid.


robinhocne
 Share

Question

10 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...