Relatório de estatisticas
Boa noite
preciso criar um formulario estatisticas e nao estou sabendo com fazer ? tenho um combobox com os periodos onde o cliente vai escolher a data do filtro ?
SAO ELES
DIA,SEMANA,MES,ANOS,GERAL
As procedures ja estao prontas mais como o usuaro vai escolher o periodo em um combobox como eu vou fazer
Exemplo se ele escolher dia , se ele escolher mes ?
[#VIDEO-18#]
[#VIDEO-18#]
Carlos Faria
Curtidas 0
Respostas
Carlos Faria
20/11/2008
Ue eu nao consegui colocar o video aqui para te mostrar o exemplo , como eu faço para colocar o video para ver ser agente fecha rapido esse chamado
GOSTEI 0
Carlos Faria
20/11/2008
O video esta associado,
relatorio de estatisticas !
GOSTEI 0
Guinther Pauli
20/11/2008
Carlos,
Se entendi a sua necessidade, vc tem em uma tabela cadastrados eventos ou pedidos, os mesmos possuem uma data, vc precisa dar a apção para o cliente de filtrar os dados por dia, mês, ano e geral ou seja todos. Para isso vc pode utilizar uma função do Delphi que esta na Unit DateUtils, vc precisa adicioná-la na Uses do sua Unit, onde irá utiliza-la exemplo:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DateUtils;
Feito isso passamos a ter acesso a funções prontas que vão lhe ajudar muito, essas funções podem nos retornar o dia, o mês ou o ano da semana extraindo isso de uma determinada data, como no exemplo abaixo:
var
dia, mes, ano : Word;
begin
// Extrai o primeiro dia do ano
StartOfTheYear(StrToDate(01/01/2008));
// Extrai o primeiro dia do mes
StartOfTheMonth(StrToDate(01/01/2008));
// Extrai o primeiro dia da semana
StartOfTheWeek(StrToDate(01/01/2008));
// Extrai o dia de uma data
StartOfTheDay(StrToDate(01/01/2008));
// Extrai o ano de uma data
StartOfAYear(StrToDate(01/01/2008));
// Extrai o mes de uma data
StartOfAMonth(StrToDate(01/01/2008));
{ Outra forma seria usar o DecodeDate exemplo:}
// aqui eu passo a data, no caso usei Date que é a data do micro, e as variáveis
// ano, mes dia recebem os valores
DecodeDate(Date,ano,mes,dia);
end;
Com isso vc pode deixar o seu cliente selecionar no seu comboBox uma data completa, como por exemplo 20/11/2008, e adicionar um RadioGroup onde ele irá selecionar pelo que ele precisa filtrar a determinada data, pelo dia, pelo mês ou ainda pelo ano.
Espero ter conseguido clarear as coisas para vc, Estamos a disposição,
abs
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DateUtils;
Feito isso passamos a ter acesso a funções prontas que vão lhe ajudar muito, essas funções podem nos retornar o dia, o mês ou o ano da semana extraindo isso de uma determinada data, como no exemplo abaixo:
var
dia, mes, ano : Word;
begin
// Extrai o primeiro dia do ano
StartOfTheYear(StrToDate(01/01/2008));
// Extrai o primeiro dia do mes
StartOfTheMonth(StrToDate(01/01/2008));
// Extrai o primeiro dia da semana
StartOfTheWeek(StrToDate(01/01/2008));
// Extrai o dia de uma data
StartOfTheDay(StrToDate(01/01/2008));
// Extrai o ano de uma data
StartOfAYear(StrToDate(01/01/2008));
// Extrai o mes de uma data
StartOfAMonth(StrToDate(01/01/2008));
{ Outra forma seria usar o DecodeDate exemplo:}
// aqui eu passo a data, no caso usei Date que é a data do micro, e as variáveis
// ano, mes dia recebem os valores
DecodeDate(Date,ano,mes,dia);
end;
Com isso vc pode deixar o seu cliente selecionar no seu comboBox uma data completa, como por exemplo 20/11/2008, e adicionar um RadioGroup onde ele irá selecionar pelo que ele precisa filtrar a determinada data, pelo dia, pelo mês ou ainda pelo ano.
Espero ter conseguido clarear as coisas para vc, Estamos a disposição,
abs
GOSTEI 0
Guinther Pauli
20/11/2008
Carlos,
Resolvido seu problema ?
Podemos encerrar esse chamado ou precisa de algo mais ?
abs
GOSTEI 0
Guinther Pauli
20/11/2008
Carlos,
Continuamos ti aguardando,
abs
GOSTEI 0
Carlos Faria
20/11/2008
boa tarde guinter
parece ate vergonhoso mas eu nao consegui resolver o problema !
Minha maior duvida é a seguinte la na combobox o usuario tem opçoes de selecionar Dia,semana,mes,Ano
eu sei que se ele seleciona dia eu vou ter que dizer que e entre dia tal entre a hora 00:00:00 e hora 23:59:59
se ele seleciona mes entre o dia 01/mes/ano hora 00:00:00 e dia atual ate a hora 23:59:59
se for ano mesmo coisa 01 dia nao hs 00:00:00 e dia atual ate as 23:59:59
agora no delphi e que eu nao sei como fazer isso ?
se vc puder fazer um video ai com exemplo , incluido o case fazendo um demo bem claro acho q fica mais facil enteder . te mandei ai um video como exemplo
[#VIDEO-23#]
[#VIDEO-23#]
GOSTEI 0
Guinther Pauli
20/11/2008
Vamos lá Carlos,
Assistindo o seu vídeo, ficou mais claro, para entender qual é a sua necessidade, sendo assim segue abaixo o exemplo que vc deve criar.
Declare as seguintes variáveis
var
dia, mes, ano : Word;
DataSelecionada : TDateTime;
Faça um case, como comentou baseado no que foi selecionado no comboBox, veja temos la..
Dia è se selecionar o dia o índice é 0
Mês è se selecionar o mês o índice é 1
Semana è se selecionar a semana o índice é 2
Ano è se selecionar o ano o índice é 3
Geral è se selecionar geral o índice é 4
Entendido essa questão, vamos ao case
case ComboBox1.ItemIndex of
0: // significa que selecionou o primeiro que é o dia
begin
// pegar o dia para isso uso a funcao abaixo
DecodeDate(Date, ano, mes, dia);
// sendo assim eu tenho o dia atual gravado na variavel dia.
// veja o Date acima retorna sempre a data atual da máquina(micro)
end;
1: // significa que selecionou a semana
begin
DataSelecionada:= StartOfTheWeek(Date);
DecodeDate(DataSelecionada,ano, mes, dia);
// a funcao acima retorna o primeiro dia da semana, baseado na data, que no caso
// Date é a data de hj da máquina;
end;
2: // significa que selecionou o mes
begin
DataSelecionada:= StartOfTheMonth(Date);
DecodeDate(DataSelecionada,ano, mes, dia);
// a funcao acima retorna o primeiro dia do mes, baseado na data, que no caso
// Date é a data de hj da máquina;
end;
3: // significa que selecionou o ano
begin
DataSelecionada:= StartOfTheYear(Date);
DecodeDate(DataSelecionada,ano, mes, dia);
// a funcao acima retorna o primeiro dia do ano, baseado na data, que no caso
// Date é a data de hj da máquina;
end;
end;
Veja sempre que eu utilizo a função DecodeData, ela recebe como primeiro parâmetro a data que eu quero “abrir” digamos assim, ou seja Date que é a data atual do micro, depois eu passo qual é a variável que ira receber o ano dessa data, depois o mês e depois o dia, Dessa forma sempre que o usuário selecionar uma opção no combo, vc terá o dia ou o mês ou o ano com o valor que vc precisa, conforme a seleção.
Quanto a questão da hora, vc não precisa se preocupar, pois o quando vc passar um dia como parâmetro. Por exemplo hj, vc passou la como parâmetro o dia 21/11/2008, e quer receber todos os registros desse dia, o próprio Delphi irá colocar a hora inicial e hora final, em todos os casos, informando o dia ele pega a hora inicial e final.
Outro detalhe com o exemplo acima vc esta recebendo o dia inicial, somente no caso de ser escolhido o filtro por dia, que é o mesmo, ou seja da inicial do filtro e final do filtro, caso contrário, vc sempre vai passar como parâmetro a data inicial escolhida e a final DATE, que é sempre o dia de hj.
Espero ter lhe ajudado agora.
Aguardamos seu retorno,
abs
GOSTEI 0
Carlos Faria
20/11/2008
Boa noite guinter
Infelizmento eu nao consegui executar ,nao foi falta de ler.
Infelismente eu ainda sou inicante no delphi eu nunca fiz nada parecido com isso ?
Exemplo como fazer uma case e informando essa condicao que se o usuario selecionar o combotempo e o radiobutonbairro lista a proc tal ?
Eu gostaria se possivel que vc criasse um video me mostrando uns 2 ou 3 exemplos criando essa situação da meu aplicativo se possivel .
[#VIDEO-24#]
[#VIDEO-24#]
GOSTEI 0
Guinther Pauli
20/11/2008
Carlos,
Segue link de uma vídeo-aula que preparamos para você,
http://video.devmedia.com.br/RicardoBoaro/Consultoria/Chamado691.zip
Aguardamos seu retorno,
abs
GOSTEI 0
Guinther Pauli
20/11/2008
Bom dia Carlos,
Podemos encerrar esse chamado ?
abs
GOSTEI 0
Carlos Faria
20/11/2008
me da so mais um dia para tentar matar aqui ok ! As vezes eu nao respondo durante o dia pq trabalho a noite e so acordo as 16:00
ate amanha agente fecha esse chamado aqui !
GOSTEI 0
Carlos Faria
20/11/2008
observaçoes
cada opção do radio butum chama um proc diferente
tem um procedure criado no banco para cada opção
no dbgrid.datasource configurei o datasource em rumtime
[#VIDEO-26#]
[#VIDEO-26#]
GOSTEI 0
Guinther Pauli
20/11/2008
Carlos,
Segue link da vídeo-aula que fizemos para você com intuito de "zerar" sua dúvida.
http://video.devmedia.com.br/RicardoBoaro/Consultoria/Chamado691-Retorno.zip
Aguardamos seu retorno para encerrarmos o chamado,
abs
GOSTEI 0
Carlos Faria
20/11/2008
Pode fechar o chamado professor a duvida foi exclarecida e consegui reproduzir o exemplo aqui !
GOSTEI 0