Fórum Problema com grafico #341587

11/05/2007

0

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

Responder

Posts

12/05/2007

Vagner.oliveira

sobe 8)


Responder

Gostei + 0

12/05/2007

Nightshade

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


Responder

Gostei + 0

15/05/2007

Vagner.oliveira

[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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar