Problema com grafico
Pessoal tenho uma tabela servicos onde aparece todas as O.S que retiro no mês. estou fazendo um gráfico para mostrar quantas OS são tiradas por mês. mas está aparecendo algo errado no gráfico. No exemplo que testei coloquei 2 valores no gráfico, com datas (mes) diferentes (01/05/2007 e o outro registro com date de 10/06/2007) e o gráfico apresentou o número 2 até a coluna referente a maio. de Junho até dezembro ficou com o valor 1. não sei o que está errado no código... :roll:
contmes:=1; {1-Janeiro, 2-Fevereiro, 3-Março...}
ano:=FormatDateTime(´yyyy´, Now );
while contmes<14 do
begin
case contmes of
1:begin
mes:=´Jan´;
DataI:=´01/01/´+ano;
DataF:=´31/01/´+ano;
end;
2:begin
mes:=´Fev´;
DataI:=´01/02/´+ano;
DataF:=´28/02/´+ano;
end;
3:begin
mes:=´Mar´;
DataI:=´01/03/´+ano;
DataF:=´31/03/´+ano;
end;
4:begin
mes:=´Abr´;
DataI:=´01/04/´+ano;
DataF:=´30/04/´+ano;
end;
5:begin
mes:=´Mai´;
DataI:=´01/05/´+ano;
DataF:=´31/05/´+ano;
end;
6:begin
mes:=´Jun´;
DataI:=´01/06/´+ano;
DataF:=´30/06/´+ano;
end;
7:begin
mes:=´Jul´;
DataI:=´01/07/´+ano;
DataF:=´31/07/´+ano;
end;
8:begin
mes:=´Ago´;
DataI:=´01/08/´+ano;
DataF:=´31/08/´+ano;
end;
9:begin
mes:=´Set´;
DataI:=´01/09/´+ano;
DataF:=´30/09/´+ano;
end;
10:begin
mes:=´Out´;
DataI:=´01/10/´+ano;
DataF:=´31/10/´+ano;
end;
11:begin
mes:=´Nov´;
DataI:=´01/11/´+ano;
DataF:=´30/11/´+ano;
end;
12:begin
mes:=´Dez´;
DataI:=´01/12/´+ano;
DataF:=´31/12/´+ano;
end;
13:begin
mes:=´Total´;
DataI:=´01/01/´+ano;
DataF:=´31/12/´+ano;
end;
End; //Case
Tabelas.QHist.Close;
Tabelas.QHist.Sql.Clear;
Tabelas.QHist.Sql.Add(´Select SUM (contador) as Servico From Servicos´);
//Tabelas.QHist.SQL.Add(´Where Entrada >=:DataI and Entrada <=:DataF´);
Tabelas.QHist.SQL.Add(´Where Entrada between DataI and DataF´);
Tabelas.QHist.Parameters.ParamByName(´DataI´).Value:=DataI;
Tabelas.QHist.Parameters.ParamByName(´DataF´).Value:=DataF;
Tabelas.QHist.Open;
FPrincipal.CServicos.Series[0].AddY(Tabelas.QHist.FieldByName(´Servico´).AsInteger, mes);
contmes:=contmes+1;
end; //While
end;
Vagner.oliveira
Curtidas 0
Respostas
Vagner.oliveira
11/05/2007
sobe 8)
GOSTEI 0
Nightshade
11/05/2007
tu ta utilizando o DBChart?
outra coisa.. declare na clausula uses DateUtils
este codigo eu utilizei numa agenda de compromissos para retornar os recados da semana..
talvez tu possa aproveitar algo.
deve ter uma funçao nesse include q te falei que retorna o 1° e ultimo dia do mês.
poupa codigo
outra coisa.. declare na clausula uses DateUtils
procedure TFrmAgenda.ShowWeek; var ADia: String; SDia: String; Q: String; begin try ID_Lembrete.Clear; ListWeek.Items.Clear; ADia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,EndOfTheWeek(Date))); SDia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,StartOfTheWeek(Date))); with IBAgenda do begin Close; SQL.Clear; Q := ´select * from AGENDA_LEMBRETES where DATA_FINAL between ´ + SDia + ´ and ´ + ADia + ´ order by DATA_FINAL desc´; SQL.Add(Q); Open; while not Eof do begin with ListWeek.Items.Add do begin ID_Lembrete.Add(FieldByName(´ID_AGENDA´).AsString); Caption := FieldByName(´MENSAGEM´).AsString; SubItems.Add(FieldByName(´DATA_INICIAL´).AsString); SubItems.Add(FieldByName(´DATA_FINAL´).AsString); Next; end; end; end; except end; end;
este codigo eu utilizei numa agenda de compromissos para retornar os recados da semana..
talvez tu possa aproveitar algo.
deve ter uma funçao nesse include q te falei que retorna o 1° e ultimo dia do mês.
poupa codigo
GOSTEI 0
Vagner.oliveira
11/05/2007
[b:b38e42b3b0][size=18:b38e42b3b0]Resolvido[/size:b38e42b3b0][/b:b38e42b3b0], o erro estava na tabela. O campo data estava como string, alterei para [b:b38e42b3b0]date[/b:b38e42b3b0] depois setei os parametros na query e funcionou. Obrigado pela ajuda.
GOSTEI 0