Somando os Campos
Boa tarde a todos...
Cá estou eu novamente...
Estava eu desenvolvendo um sisteminha, muito ´legalzinho´ que estava ficando... o meu objetivo com o sisteminha era não montar algo com a certeza do que estava fazendo... e sim aperfeiçoar alguns conhecimentos que recebi por um novo amigo no forum.
Eu sei gente a História é meio longa mas vou resumir.
Quando cheguei ao fim do sistema eu presisava entrar com um codigo que na tabela era + (tabela Paradox) em um edit, e fazer a consulta por esse código, pois este era a minha chave na tabela,.... tentei tentei tentei e não consegui, por fim me falaram que o problema estava nas estrutura da tabela....
Pois bem....resolvi sentare pensar em fazer um outro sistema, agora este com um objetivo. Um simples cadastro dos sistemas que eu desenvolvo com as seguintes tabelas e campos.
CadastrarProjeto
- Proj_Codigo +
- Proj_Nome A 25
- Proj_Descricao A 50
- Proj_Objetivo A 40
- Proj_Inicio D
- Proj_Fim D
ItemdoProjeto
- Pro_Codigo I
- Atividade A 30
- HoraInicio T
- HoraFim T
- SubTotalHoras T
- TotalHoras T
pois bem...agora faço da seguinte forma...
Cadastro Primeiro o Projeto na tabela CadastrarProjeto
e o campo Proj_fim fica em branco para eu entrar com a data quando eu terminar... uso o comando de alterar dados da tabela para fazer isso.
Depois vou cadastrando as atividades conforme vou desenvolvendo.
Exemplo.
CadastrarProjeto
- Proj_Codigo 1
- Proj_Nome Projetos
- Proj_Descricao Projetos para calculo de Horas
- Proj_Objetivo Calcular tempo gasto em um projeto
- Proj_Inicio 16/02/2004
- Proj_Fim
Cadastrei o Projeto agora eu vou cadastrando as atividades conforme vou comessar a desenvolver.
Em um formulario vou ´puxando´ (First, prior, next, last) os projetos cadastrados na tabela CadastrarProjeto, quando encontro um projeto que eu tenho que desenvolver uma atividade, clico em inciar atividade e ele joga para o campo da tabela ItemdoProjeto o Codigo do Projeto que eu escolhi.
Então ele automaticamente joga a hora atual para o campo da tabela Item do Projeto e pede para que eu entre com o nome da atividade.
Exemplo.
ItemdoProjeto
- Pro_Codigo 1
- Atividade Desenhar Janelas
- HoraInicio 15:50:00
- HoraFim
- SubTotalHoras
- TotalHoras
e depois quando quero finalizar está atividade vou ´puxando´ ( first, prior, next, last ) as atividades clico no botão finalizar atividade e ele joga a hora atual para o campo da tabela ItemdoProjeto HoraFim.
Quando clico no gravar ele calcula por variaveis o SubTotalHoras, joga o falor encontrado no dbedit Subtotalhoras e altera a tabela, digo altera por que, pois a atividade quando foi iniciada ja foi gravada na tabela, então eu uso o comando de alterar a tabela, ´meio que faço uma alteração´ na tabela, quer dizer adiciono novas informações, e regravo.
Algora quero fazer o seguinte.
Quando eu Finalizar um Projeto, e não uma atividade quero somar todas as horas gastas neste Projeto, e gravar no campo da tabela Itemdoprojeto TotalHoras.
Para isso ocorrer tinha pensado na seguinte forma.
buscava o projeto que eu gostaria de finalizar.
(first, prior, next, last)
quando eu clicasse no botão finalizar ele somaria todos os campos SubTotalHoras da tabela ItemdoProjeto, e jogaria o valor para o o dbedit relacionado com o campo da tabela TotalHoras.
Mas eu não sei como fazer isso.... Alguem poderia me ajudar ????
Seria mais ou menos assimm....
Depois de ter cadastrado o projeto e feito todas as atividades nele e finalizados todas elas.... queria fazer a somatória das horas gastas e gravar no campo da tabela ItemdoProjeto campo TotalHoras.
Este tópico é uma continuação do outro tópico pois ficou faltando está ultima parte no anterior. :arrow:
EU SEI GENTE QUE FICO MUITO GRANDE MAS EU PRESISAVA EXPLICAR TUDO CERTINHO PARA NÃO HAVER MAU ENTENDIDO E RESOLVER O MEU PROBLEMA.
por enquanto é só, se alguem tiver a pasciência para ler tudo isso eu coloco minha outra dúvida.
Obrigado mesmo pessoal
Cá estou eu novamente...
Estava eu desenvolvendo um sisteminha, muito ´legalzinho´ que estava ficando... o meu objetivo com o sisteminha era não montar algo com a certeza do que estava fazendo... e sim aperfeiçoar alguns conhecimentos que recebi por um novo amigo no forum.
Eu sei gente a História é meio longa mas vou resumir.
Quando cheguei ao fim do sistema eu presisava entrar com um codigo que na tabela era + (tabela Paradox) em um edit, e fazer a consulta por esse código, pois este era a minha chave na tabela,.... tentei tentei tentei e não consegui, por fim me falaram que o problema estava nas estrutura da tabela....
Pois bem....resolvi sentare pensar em fazer um outro sistema, agora este com um objetivo. Um simples cadastro dos sistemas que eu desenvolvo com as seguintes tabelas e campos.
CadastrarProjeto
- Proj_Codigo +
- Proj_Nome A 25
- Proj_Descricao A 50
- Proj_Objetivo A 40
- Proj_Inicio D
- Proj_Fim D
ItemdoProjeto
- Pro_Codigo I
- Atividade A 30
- HoraInicio T
- HoraFim T
- SubTotalHoras T
- TotalHoras T
pois bem...agora faço da seguinte forma...
Cadastro Primeiro o Projeto na tabela CadastrarProjeto
e o campo Proj_fim fica em branco para eu entrar com a data quando eu terminar... uso o comando de alterar dados da tabela para fazer isso.
Depois vou cadastrando as atividades conforme vou desenvolvendo.
Exemplo.
CadastrarProjeto
- Proj_Codigo 1
- Proj_Nome Projetos
- Proj_Descricao Projetos para calculo de Horas
- Proj_Objetivo Calcular tempo gasto em um projeto
- Proj_Inicio 16/02/2004
- Proj_Fim
Cadastrei o Projeto agora eu vou cadastrando as atividades conforme vou comessar a desenvolver.
Em um formulario vou ´puxando´ (First, prior, next, last) os projetos cadastrados na tabela CadastrarProjeto, quando encontro um projeto que eu tenho que desenvolver uma atividade, clico em inciar atividade e ele joga para o campo da tabela ItemdoProjeto o Codigo do Projeto que eu escolhi.
Então ele automaticamente joga a hora atual para o campo da tabela Item do Projeto e pede para que eu entre com o nome da atividade.
Exemplo.
ItemdoProjeto
- Pro_Codigo 1
- Atividade Desenhar Janelas
- HoraInicio 15:50:00
- HoraFim
- SubTotalHoras
- TotalHoras
e depois quando quero finalizar está atividade vou ´puxando´ ( first, prior, next, last ) as atividades clico no botão finalizar atividade e ele joga a hora atual para o campo da tabela ItemdoProjeto HoraFim.
Quando clico no gravar ele calcula por variaveis o SubTotalHoras, joga o falor encontrado no dbedit Subtotalhoras e altera a tabela, digo altera por que, pois a atividade quando foi iniciada ja foi gravada na tabela, então eu uso o comando de alterar a tabela, ´meio que faço uma alteração´ na tabela, quer dizer adiciono novas informações, e regravo.
Algora quero fazer o seguinte.
Quando eu Finalizar um Projeto, e não uma atividade quero somar todas as horas gastas neste Projeto, e gravar no campo da tabela Itemdoprojeto TotalHoras.
Para isso ocorrer tinha pensado na seguinte forma.
buscava o projeto que eu gostaria de finalizar.
(first, prior, next, last)
quando eu clicasse no botão finalizar ele somaria todos os campos SubTotalHoras da tabela ItemdoProjeto, e jogaria o valor para o o dbedit relacionado com o campo da tabela TotalHoras.
Mas eu não sei como fazer isso.... Alguem poderia me ajudar ????
Seria mais ou menos assimm....
Depois de ter cadastrado o projeto e feito todas as atividades nele e finalizados todas elas.... queria fazer a somatória das horas gastas e gravar no campo da tabela ItemdoProjeto campo TotalHoras.
Este tópico é uma continuação do outro tópico pois ficou faltando está ultima parte no anterior. :arrow:
EU SEI GENTE QUE FICO MUITO GRANDE MAS EU PRESISAVA EXPLICAR TUDO CERTINHO PARA NÃO HAVER MAU ENTENDIDO E RESOLVER O MEU PROBLEMA.
por enquanto é só, se alguem tiver a pasciência para ler tudo isso eu coloco minha outra dúvida.
Obrigado mesmo pessoal
Tec.doido
Curtidas 0
Respostas
Luineumann
17/02/2004
vc pode utilziar a estrutura mastersource/masterfields
diga que o mastersource da tabela ítens é a tabela projeto e que a masterfiels é o campo projeto (pro_codigo)
assim qdo voce le um projeto automaticamente a tabela items é ´filtrada´ e aparecem apenas os registros do projeto X
aí faz mais ou menos o seguinte
cria um campo calculado em ítens em que trandsforma as horas em minutos ( hh*60 + mm) -> tempo_mm
var
hh, mm : integer;
begin
itens.first;
mm := 0;
while not itens.eof
do begin
mm := mm + tempo_mm; // tempo_mm é a variavel calculada de itens
itens.next;
end;
hh := 0;
while mm > 59
do begin
mm := mm - 60;
hh := hh + 1;
end;
campo total_horas do projeto := encodetime(hh, mm, 0, 0);
end;
diga que o mastersource da tabela ítens é a tabela projeto e que a masterfiels é o campo projeto (pro_codigo)
assim qdo voce le um projeto automaticamente a tabela items é ´filtrada´ e aparecem apenas os registros do projeto X
aí faz mais ou menos o seguinte
cria um campo calculado em ítens em que trandsforma as horas em minutos ( hh*60 + mm) -> tempo_mm
var
hh, mm : integer;
begin
itens.first;
mm := 0;
while not itens.eof
do begin
mm := mm + tempo_mm; // tempo_mm é a variavel calculada de itens
itens.next;
end;
hh := 0;
while mm > 59
do begin
mm := mm - 60;
hh := hh + 1;
end;
campo total_horas do projeto := encodetime(hh, mm, 0, 0);
end;
GOSTEI 0