Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Hugo.

De acuerdo a lo que pude entender, te hice un ejemplo muy reducido considerando sólamente el aspecto fecha/resultado. En el mismo supongo el formato de la fecha almacenada como 'dd/mm/yyyy', ej: '01/01/2012'. Esto último es esencial al momento de elegir como extraer el día, mes o año con la función Copy.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y: Double;
  AXLabel: string;
begin
  with DataSet do
  begin
    First;
    while not Eof do
    begin
      x:= StrToFloat(Copy(FieldByName('FECHA').AsString, 4, 2)+  // mes (--/mm/----)
                     Copy(FieldByName('FECHA').AsString,1,2));   // día (dd/--/----)
      y:= FieldByName('RESULTADO').AsFloat;
      if FieldByName('ANULADO').AsInteger = 1 then
        Series2.AddBubble(x, y, 1, Copy(FieldByName('FECHA').AsString,1,5), clRed)  // se muestra: dd/mm
      else
        Series1.AddBubble(x, y, 1, Copy(FieldByName('FECHA').AsString,1,5), clLime); // se muestra: dd/mm
      Next;
    end;
  end;
end;
El quid para ordenar las fechas almacenadas como cadena, es invertirla como hago arriba en la obtención del valor de x. De otro modo y ejemplificando, la fecha '31/03/2000' es mayor que '01/01/2144'... Espero te sea de ayuda.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-03-2012 a las 22:16:30. Razón: corregir comentario
Responder Con Cita
  #2  
Antiguo 11-03-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 0
guitarrahugo Va por buen camino
Bien, funciono de maravilla. Muchas gracias. Había que invertir el día por le mes. Ahora lo ordena perfecto.
Aprovecho para preguntarte otra cosa sin abusar de tu buena voluntad.
Al mezclar fechas de 2 meses distintos ejemplo desde 22-02 hasta el 09-03 me agrupa del 22-02 hasta el 28-02 a la izquierda del grafico todo apretado y 01-03 hasta 09-03 a la derecha del grafico todo apretado, como que del 28 al 01 tendría que contar hasta el 99 para volver a empezar del 1 otra vez o algo así. La pregunta es ¿existe la posibilidad de decirle que llegado el numero 31 empiece a contar de 1 en el eje X?. De esta manera el punto del 28-02 quedaría al lado del punto del 01-03.
Responder Con Cita
  #3  
Antiguo 13-03-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 0
guitarrahugo Va por buen camino
Smile

Tema solucionado, lo que había que hacer era convertir en date el eje X, de esta manera llega hasta el día 31 y agrupa de manera inmediata el día 1. Gracias por tu ayuda. Como dije antes, una vez más tema solucionado gracias al foro.Asi quedó el código.

Código Delphi [-]
             for I := 1 to NumeroResultados  do
             begin
                    nomen.RecordSetIndex:= i; 
                    y := StrToFloat(StringReplace(Nomen.field['RESULTADO'], '.',',',[rfReplaceAll])); 
                    x := StrTodate(copy( (Nomen.field['fecha']),1,2)+'/'+ copy( (Nomen.field['fecha']),4,2));
                    titulo:= copy( (Nomen.field['fecha']),1,5);
                    if strToInt(Nomen.field['ANULADO'])= 1 then
                    begin
                          Series5.AddBubble(x,y,0.2,titulo,clRed); //grafica punto anulado
                          PuntoAnulado := PuntoAnulado + 1
                    end
                    else begin
                          Series1.AddBubble(x,y,0.2,titulo);
                          CantResultados := CantResultados + 1;
                          SumaResultados :=  SumaResultados + StrToFloat(StringReplace(Nomen.field['RESULTADO'], '.',',',[rfReplaceAll]));
                          ValordeAnalisis[i]:= StrToFloat(StringReplace(Nomen.field['RESULTADO'], '.',',',[rfReplaceAll]));
                     end;

                  //Le digo que trace la media a partir de la fecha mas alta que encontro entoces va a ir de 0 a 31 x ejemplo
                  if GraficaHasta < StrToInt(copy( (Nomen.field['fecha']),1,2)) then//+ copy( (Nomen.field['fecha']),1,2))+2 then
                   GraficaHasta := StrToInt(copy( (Nomen.field['fecha']),1,2)) + 2;

              end;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda con un tchart efirvida Varios 4 05-04-2012 09:56:05
Previsualizar un TChart hmrvivas Impresión 2 03-05-2010 23:00:14
Tchart marlulipe Gráficos 2 15-08-2007 01:32:04
TChart con problemas en los primeros puntos ANDRES86 OOP 0 14-04-2007 03:02:04
Ayuda con TChart pelaorb68 Gráficos 0 02-09-2006 00:41:02


La franja horaria es GMT +2. Ahora son las 22:12:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi