Ver Mensaje Individual
  #1  
Antiguo 21-10-2013
monfa monfa is offline
Registrado
 
Registrado: ene 2012
Posts: 3
Reputación: 0
monfa Va por buen camino
Problema Al Llenar Sort

AYUDA LLENADO DE GRILLA
Hola buenos dias me pueden ayudar,
Estoy haciendo una agenda de citas con un SortGrid
Tengo un error por que me muestra asi

7:00 1 53456765 OSCAR PALACIOS
7:45 1
7:45 2
7:45 3
8:30 1
8:30 2
8:30 3

y deberia mostar


7:00 1 53456765 OSCAR PALACIOS
7:00 2
7:00 3
7:45 1
7:45 2
7:45 3
8:30 1
8:30 2
8:30 3
9:15 1
9:15 2
9:15 3

Donde el interval = intervalo del dia que en este caso son 45

Código Delphi [-]
procedure TF_ag.llena;
var
  hora : TTime;
  fila, interval, cam : Integer;
  mensaje : String;
  i, j, k, l: Integer;
begin
  fila        := 1;
  interval    := intervalo(MC1.Date);
  if not(Pro.fieldValues['HORA_INICIAL'] = NULL) then
  begin
      hora    := Pro.fieldValues['HORA_INICIAL'];
        cam     := Pro.fieldValues['CAMILLA'];
        Spro.RowCount  := 2;
        if intervalo(MC1.Date) > 0 then
         begin
                ZQagenda.Close;
                  ZQagenda.SQL.Clear;
                  ZQagenda.SQL.Add('SELECT P.NOMBRE,. A* FROM PACIENTES P, AGENDA A  WHERE P.CEDULA = A.CEDULA AND 
                                                                 A.COD_P ='+QuotedStr(Pro.fieldValues['COD_P'])  AND A.FECHA = '+QuotedStr(DateToStr(MC1.Date)) ORDER BY A.HORA ASC');
                 ZQagenda.Open;
                 If not(Pro.fieldValues['HORA_INICIAL'] = Pro.fieldValues['HORA_FINAL']) then
        begin
                     while (CompareTime(hora, Pro.fieldValues['HORA_INI']) >= 0) and
                                                             (CompareTime(hora, Pro.fieldValues['HORA_FIN']) < 0) do  //
                      begin
                          if ZQagenda.RecordCount > 0 then
                            begin
                    ZQagenda.First;
                                  with SGag do
                                  begin
                                        for j:= 0 to ZQagenda.RecordCount - 1 do
                        begin
                            if ((CompareTime(ZQagenda.FieldValues['HORA'],hora) < 0) and
                                                                (CompareTime(ZQagenda.FieldValues['HORA'],hora-(interval)) > 0)) or
                                                                (CompareTime(ZQagenda.FieldValues['HORA'],hora) = 0)  then
                                              begin
                                                Cells[0, fila]  := FormatDateTime('hh:nn am/pm',ZQagenda.FieldValues['HORA_INI']);
                                                 if not(ZQagenda.FieldValues['CEDULA']= NULL) then
                                                begin
                                                      if not(ZQagenda.FieldValues['CEDULA'] = '0') then
                                                            Cells[2, fila]  := ZQagenda.FieldValues['CEDULA']
                                                      else
                                                            Cells[2, fila]  := '';
                                                end;
                                                if not(ZQagenda.FieldValues['NOMBRE'] = NULL) then
                                                begin
                                                      if not(ZQagenda.FieldValues['CEDULA'] = '0') then
                                                            Cells[3, fila]  := ZQagenda.FieldValues['NOMBRE']
                                                      else
                                                            Cells[3, fila]  := '';
                                               end;
                                                SGag .RowCount  := SGag .RowCount + 1;
                                                fila := fila + 1;
                                          end else
                                          begin
                                              for l := 1 to cam do 
                                            begin
                                                  SGag .Cells[0, fila]  := FormatDateTime('hh:nn am/pm',hora);
                                                  SGag .Cells[1, fila]  := IntToStr(l);
                                                  SGag .Cells[2, fila]  := '';
                                                  SGag .Cells[3, fila]  := '';
                                SGag .RowCount        := SGag .RowCount + 1;
                                                  fila := fila + 1;
                                            end; 
                                          end; 
                                          ZQagenda.Next;
                                    end; 
                            end else
                            begin
                               for i := 1 to cam 
                                 begin
                                     SGag .Cells[0, fila]  := FormatDateTime('hh:nn am/pm',hora);
                                      SGag .Cells[1, fila]  := IntToStr(i);
                                      SGag .Cells[2, fila]  := '';
                                      SGag .Cells[3, fila]  := '';
                                     SGag .RowCount        := SGag .RowCount + 1;
                                      fila  := fila + 1;
                                 end;
                            end;  
                            hora:= hora+(interval);
                      end; 
                 end; 
          end;
 end;
end;

Última edición por ecfisa fecha: 22-10-2013 a las 00:54:46. Razón: Agregar etiquetas [DELPHI] [/DELPHI]
Responder Con Cita