Problema com grafico

Delphi

11/05/2007

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

Vagner.oliveira

Curtidas 0

Respostas

Vagner.oliveira

Vagner.oliveira

11/05/2007

sobe 8)


GOSTEI 0
Nightshade

Nightshade

11/05/2007

tu ta utilizando o DBChart?
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

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
POSTAR