ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Preenchimento do StringGrid (Resolvido)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Sex Jul 30, 2010 1:45 pm    Assunto: Preenchimento do StringGrid (Resolvido) Responder com Citação

Srs,

Rodei por umas 50 mensagens no forum e nenhuma me ajudou.

Seguinte. Tenho as seguintes tabelas

Tabela1 - Tabela de Horarios:
00:00
00:30
01:00
01:30

Tabela2 - Consultas marcadas:
01:00 - data - Fulano de Tal

O que estou querendo é
Preencher a primeira coluna do StringGrid com os horarios da tabela1.

Depois disso, adicionar na coluna 2 no seu respectivo horario os dados da tabela2

Entao ficaria:

00:00
00:30
01:00 - data - Fulano de Tal
01:30


Alguem me ajuda?
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba


Editado pela última vez por aleshy em Seg Ago 02, 2010 4:44 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 30, 2010 1:50 pm    Assunto: Re: Preenchimento do StringGrid Responder com Citação

Boa tarde,

ficaria da seguinte maneira.

Código:

  StringGrid.Cells[0 {Coluna} ,0 {Linha]] := '00:00';
  StringGrid.Cells[0 {Coluna} ,1 {Linha]] := '00:30';
  StringGrid.Cells[0 {Coluna} ,2 {Linha]] := '01:00';
  StringGrid.Cells[0 {Coluna} ,3 {Linha]] := '01:30';
  StringGrid.Cells[0 {Coluna} ,4 {Linha]] := '02:00';

  ..
  StringGrid.Cells[0 {Coluna} ,xx {Linha]] := '23:30';

  StringGrid.Cells[1 {Coluna} ,2 {Linha]] := 'Consulta marcada para o fulano'; // Coluna 1 mas na mesma linha de 1 hora.


aleshy escreveu:
Srs,

Rodei por umas 50 mensagens no forum e nenhuma me ajudou.

Seguinte. Tenho as seguintes tabelas

Tabela1 - Tabela de Horarios:
00:00
00:30
01:00
01:30

Tabela2 - Consultas marcadas:
01:00 - data - Fulano de Tal

O que estou querendo é
Preencher a primeira coluna do StringGrid com os horarios da tabela1.

Depois disso, adicionar na coluna 2 no seu respectivo horario os dados da tabela2

Entao ficaria:

00:00
00:30
01:00 - data - Fulano de Tal
01:30


Alguem me ajuda?

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Sex Jul 30, 2010 1:53 pm    Assunto: Responder com Citação

Caro BrunoMoreyra,

Adicionar manualmente é facil. Quero fazer isso com um loop do resultado retornado de uma query.

Nem todos os dias terao horarios de 00:00 a 23:00.

Por isso eu preciso que, se o query retornar apenas 5 horarios eu preencha o StringGrid com estes 5 horarios e depois pesquise as consultas marcadas e adicione ao respectivo horario..

Preciso de algo tipo For..
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 30, 2010 1:57 pm    Assunto: Responder com Citação

Boa tarde,

coloque uma variável do tipo TDateTime, onde você trabalhará somente com a hora, inicializando com a hora que você desejar (08:00), e percorra até a hora que deseja, em um while, verificando o horário que a variável está, e com isso incremente os minutos no intervalo que desejar, 30 minutos.
Posterior preenchido o StringGrid com todos os horários, basta percorrer a query, procurando qual a linha do horário que foi cadastrado, e colocar na coluna desejada.

aleshy escreveu:
Caro BrunoMoreyra,

Adicionar manualmente é facil. Quero fazer isso com um loop do resultado retornado de uma query.

Nem todos os dias terao horarios de 00:00 a 23:00.

Por isso eu preciso que, se o query retornar apenas 5 horarios eu preencha o StringGrid com estes 5 horarios e depois pesquise as consultas marcadas e adicione ao respectivo horario..

Preciso de algo tipo For..

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Sex Jul 30, 2010 2:05 pm    Assunto: Responder com Citação

Pow Brunao!

Esta é a parte mais facil Smile

Meu problema é que nunca trabalhei com StringGrid e nao sei como incluir os resultado retornados nas colunas.
Tipo:

Grid.Cells[0,1] := primeiro resultado,
Grid.Cells[0,2] := segundo resultado

mas isso deve ser feito dinamicamente... entende? Smile

Ele deve saber que o primeiro resultado da query de horarios vai para a primeira linha, o segundo resultado para a segunda linha e assim vai...
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 30, 2010 2:14 pm    Assunto: Responder com Citação

Boa tarde,

no caso você terá que definir quantas colunas terá o StringGrid.
E no caso você pode trabalhar com coluna visíveis e colunas invisíveis, no caso das coluna visíveis são aquelas que o usuário pode visualizar (fica fácil para ele entender), as colunas invisíveis são utilizadas para controle do sistema (no caso o usuário não precisa visulizar) como ás vezes acontece de código, algo assim.

Query.First;
while (not Query.Eof) do begin
// Procurando a linha que o horário está
vLinha := 0;
for I := 0 to (StringGrid.RowCount - 1) do begin
if (StringGrid.Cells[0,I] = Query.FieldByName('HORARIO').AsString) then begin
vLinha := I;
Break;
end;
end;

// Tem que verificar a coluna que deseja, dia algo assim.
// A coluna pode ser vista da mesma maneira que encontrou a linha.
StringGrid.Cells[1,vLinha] := Query.FieldByName('PACIENTE').AsString;
StringGrid.Cells[2,vLinha] := Query.FieldByName('PACIENTE').AsString;

Query.Next;
end;

aleshy escreveu:
Pow Brunao!

Esta é a parte mais facil Smile

Meu problema é que nunca trabalhei com StringGrid e nao sei como incluir os resultado retornados nas colunas.
Tipo:

Grid.Cells[0,1] := primeiro resultado,
Grid.Cells[0,2] := segundo resultado

mas isso deve ser feito dinamicamente... entende? Smile

Ele deve saber que o primeiro resultado da query de horarios vai para a primeira linha, o segundo resultado para a segunda linha e assim vai...

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Seg Ago 02, 2010 4:18 pm    Assunto: Responder com Citação

Resolvido!

Trecho do codigo com a resolucao:
Código:
while not qSalaEspera.Eof do
begin
GradeEspera.Cells[0, L] := Copy(qSalaEspera.FieldByName('HORA').AsString, 1, 5) + ' - ' +
                           qSalaEspera.FieldByName('CLIENTE').AsString + ' (' +
                           qSalaEspera.FieldByName('ANIMAL').AsString + ') - ' +
                           qSalaEspera.FieldByName('SIGLA').AsString +
                           qSalaEspera.FieldByName('FUNCIONARIO').AsString;
L := L + 1;
Next;
end;


É tao simples que as vezes fica complicado Smile
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Seg Ago 02, 2010 5:53 pm    Assunto: Responder com Citação

Boa noite,

só abro uma observação para a sua codificação, pelo jeito você está utilizando o with então tem hora que você coloca o nome do objeto qSalaEspera.Eof, e tem hora você não coloca o nome do objeto Next, colocando direto o nome da propriedade.
Só tomar cuidado com isso, pois o formulário também possui a propriedade Next, então o código compilar, mas hora de funcionar ocasione problema, então tome bastante cuidado com isso.


aleshy escreveu:
Resolvido!

Trecho do codigo com a resolucao:
Código:
while not qSalaEspera.Eof do
begin
GradeEspera.Cells[0, L] := Copy(qSalaEspera.FieldByName('HORA').AsString, 1, 5) + ' - ' +
                           qSalaEspera.FieldByName('CLIENTE').AsString + ' (' +
                           qSalaEspera.FieldByName('ANIMAL').AsString + ') - ' +
                           qSalaEspera.FieldByName('SIGLA').AsString +
                           qSalaEspera.FieldByName('FUNCIONARIO').AsString;
L := L + 1;
Next;
end;


É tao simples que as vezes fica complicado Smile

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Ter Ago 03, 2010 2:14 pm    Assunto: Responder com Citação

Ok amigo.

Nunca tive este tipo de problema, visto que o codigo que postei nao mostra o bloco de begin e end onde contem o with query do begin...

De qualquer forma obrigado pela dica.
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB