Fórum Preencher StringGrid #387510
29/09/2010
0
No exemplo do tópico, ele exibe apenas os horários preenchidos, eu gostaria de exibir todos (preenchidos e não preenchidos)
Alguem teria alguma idéia de como fazer?
Fábio Cruz
Curtir tópico
+ 0Posts
29/09/2010
Wilson Junior
Exemplo:
Horá Conteúdo
----- --------
00:00
00:30
01:00
01:30 Paciente João { Aqui o LOCATE encontrou }
02:00
02:30
03:00
03:30
04:00 Reunião { Aqui o LOCATE encontrou }
...
Espero ter colaborado.
Gostei + 0
29/09/2010
Fábio Cruz
Algo semelhante a isso?
While not Table.Eof do begin for i = 0 to i >= table.RecordCount begin StringGrid1.Cells[0, i] := '0:00'; if (StringGrid1.Cells[0, i] = TableHora.asstring) then StringGrid1.Cells[1, i] := TableAssunto.Asstring; ...
Obs: Coloquei table para simplificar, mas irei utilizar ClientDataSet
Gostei + 0
29/09/2010
Eriley Barbosa
var
i: Integer;
hora: string;
begin
hora := '23:30';
//Preenche a primeira coluna com os horarios
for i := 1 to 48 do
begin
hora := FormatDateTime('hh:mm',
IncMinute(StrtoDateTime(FormatDateTime('hh:mm',StrToDateTime(hora))), 30));
GradeEspera.Cells[0, i] := hora;
end;
while not qSalaEspera.Eof do
begin
for i := 1 to GradeEspera.RowCount - 1 do
begin
//Se a hora for igual a que esta na coluna lança na grade
if Copy(qSalaEspera.FieldByName('HORA').AsString, 1, 5) = GradeEspera.Cells[0, i] then
begin
GradeEspera.Cells[1, i] := qSalaEspera.FieldByName('CLIENTE').AsString + ' (' +
qSalaEspera.FieldByName('ANIMAL').AsString + ') - ' +
qSalaEspera.FieldByName('SIGLA').AsString +
qSalaEspera.FieldByName('FUNCIONARIO').AsString;
//Abandona o laço
Break;
end;
end;
//Vai para o proximo registro
Next;
end;
}
end;
Gostei + 0
29/09/2010
Wilson Junior
Const
INTERVALO = '00:30:00';
var
Hora: TTime;
Linha: integer;
begin
{ Primeira linha para o título e a segunda linha em branco }
StringGrid1.RowCount := 2;
Linha := 1;
Hora := StrToTime( '00:00:00' );
while Hora <= StrToTime( '23:59:59' ) do
begin
StringGrid1.Cells[0, Linha] := TimeToStr( Hora );
if ClientDataSet.Locate( 'CampoHora', Hora, [] ) then
StringGrid1.Cells[1, Linha] := ClientDataSet.FieldByName('CampoConteudo').AsString
;
Hora := Hora + StrToTime( INTERVALO );
Inc( Linha );
StringGrid1.RowCount := Linha;
end;
end;
Espero ter colaborado.
Gostei + 0
29/09/2010
Eriley Barbosa
Gostei + 0
29/09/2010
Fábio Cruz
Obrigado.
Gostei + 0
29/09/2010
Fábio Cruz
Muito Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)