Posts
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
O video esta associado,
relatorio de estatisticas !
21/11/2008
Guinther Pauli
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
21/11/2008
Guinther Pauli
Carlos,
Resolvido seu problema ?
Podemos encerrar esse chamado ou precisa de algo mais ?
abs
21/11/2008
Guinther Pauli
Carlos,
Continuamos ti aguardando,
abs
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#]
21/11/2008
Guinther Pauli
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
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#]
23/11/2008
Guinther Pauli
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
24/11/2008
Guinther Pauli
Bom dia Carlos,
Podemos encerrar esse chamado ?
abs
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 !
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#]
26/11/2008
Guinther Pauli
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
Pode fechar o chamado professor a duvida foi exclarecida e consegui reproduzir o exemplo aqui !