Agenda com StringGrid
Fala galera
Comecei a seguir um exemplo de como fazer esse modelo de agenda:
Hora Nome
----- --------------
07:00
07:30 Fulano
08:00
E não to conseguindo listar os dados do banco na StringGrid... No banco tenho 2 horarios cadastrados: 15:30:00 e 20:30:00, mas n aparecem, tentei adaptar para o meu código mas não deu certo...
Comecei a seguir um exemplo de como fazer esse modelo de agenda:
Hora Nome
----- --------------
07:00
07:30 Fulano
08:00
E não to conseguindo listar os dados do banco na StringGrid... No banco tenho 2 horarios cadastrados: 15:30:00 e 20:30:00, mas n aparecem, tentei adaptar para o meu código mas não deu certo...
var
i: Integer;
hora: string;
begin
//qryAgenda.Active:= true;
hora := '06:30';
//Preenche a primeira coluna com os horarios
for i := 1 to 30 do
begin
hora := FormatDateTime('hh:mm:ss',
IncMinute(StrtoDateTime(FormatDateTime('hh:mm:ss',StrToDateTime(hora))), 30));
StringGrid2.Cells[0, i] := hora;
end;
while not qryAgenda.Eof do
begin
for i := 1 to StringGrid2.RowCount - 1 do
begin
//Se a hora for igual a que esta na coluna lança na grade
if Copy(qryAgenda.FieldByName('hrservico').AsString, 0, i) = StringGrid2.Cells[0, i] then
begin
StringGrid2.Cells[0, i] := qryAgenda.FieldByName('dtservico').AsString;
//Abandona o laço
Break;
end;
end;
//Vai para o proximo registro
Next;
end;
Vander Carlos
Curtidas 0
Respostas
Claudia Nogueira
27/11/2012
Levei em conta que seu campo hrservico é do tipo string, por causa do seu código.
Tenta assim:
Tenta assim:
var
i, iColuna: Integer;
hora: string;
horabd : TTime;
begin
hora := '06:30';
//Preenche a primeira coluna com os horarios
for i := 1 to 30 do
begin
hora := FormatDateTime('hh:mm:ss',IncMinute(StrtoDateTime(FormatDateTime('hh:mm:ss',StrToDateTime(hora))), 30));
StringGrid2.Cells[0, i] := hora;
end;
while not qryAgenda.Eof do
begin
iColuna := 1;
try
horabd := StrToTime(qryAgenda.FieldByName('hrservico').AsString);
for i := 1 to StringGrid2.RowCount - 1 do
begin
//Se a hora for igual a que esta na coluna lança na grade
if FormatDateTime('hh:mm:ss',horabd) = StringGrid2.Cells[0, i] then
begin
if StringGrid2.Cells[iColuna, i] <> '' then
Inc(iColuna);
StringGrid2.Cells[iColuna, i] := qryAgenda.FieldByName('dtservico').AsString;
//Abandona o laço
Break;
end;
end;
except
end;
//Vai para o proximo registro
qryAgenda.Next;
end;
end;
GOSTEI 0
Vander Carlos
27/11/2012
Olá Claudiadnh, muito obrigado mas com esse não deu certo... Procurei outro exemplo e deu certo:
Só me tira mais uma dúvida, no banco as datas estão salvas assim: 27/11/2012 00:00:00
E quando eu tento fazer alguma consulta só para listar os horários daquela data, não me retorna nenhum registro.
Consulta:
Estou usando o MySQL, mudei essa semana pra ele :(
Grato.
while (not qryAgenda.Eof) do begin
// Procurando a linha que o horário está
vLinha := 0;
for I := 0 to (StringGrid2.RowCount - 1) do begin
if (StringGrid2.Cells[0,I] = qryAgenda.FieldByName('hrservico').AsString) then begin
vLinha := I;
Break;
end;
end;
//Pegando os registros do banco e inserindo na hora que foi localizada
StringGrid2.Cells[2,vLinha] := qryAgenda.FieldByName('cliente').AsString;
qryAgenda.Next;
//Definindo o nome das colunas
StringGrid2.Cells[0,0]:= 'Horário';
StringGrid2.Cells[1,0]:= 'Nome';
end;
end;Só me tira mais uma dúvida, no banco as datas estão salvas assim: 27/11/2012 00:00:00
E quando eu tento fazer alguma consulta só para listar os horários daquela data, não me retorna nenhum registro.
Consulta:
qryAgenda.Close;
qryAgenda.SQL.Clear;
qryAgenda.SQL.Add('SELECT * FROM cadagenda WHERE dtagendamento = ' + edtDataAtual.Text); //que é essa 27/11/2012 00:00:00
qryAgenda.Open;Estou usando o MySQL, mudei essa semana pra ele :(
Grato.
GOSTEI 0
Claudia Nogueira
27/11/2012
Tenta assim:
qryAgenda.Close;
qryAgenda.SQL.Clear;
qryAgenda.SQL.Add('SELECT * FROM cadagenda WHERE dtagendamento = ' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:mm:ss', StrToDateTime(edtDataAtual.Text)))); //que é essa 27/11/2012 00:00:00
qryAgenda.Open;
GOSTEI 0
Vander Carlos
27/11/2012
É isso mesmo Claudiadnh :D
Muito obrigado, resolvido.
Muito obrigado, resolvido.
GOSTEI 0
Vander Carlos
27/11/2012
Só mais 1 coisa, como eu posso zerar o tempo do MonthCalendar ?
Quando eu faço essa consulta:
Ele me retorna a data + a hora atual, e eu queria que ele me retornasse a data + o tempo zerado: 2012-11-28 00:00:00
Grato.
Quando eu faço essa consulta:
qryAgenda.SQL.Add('SELECT * FROM cadagenda WHERE dtagendamento = ' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:mm:ss' MonthCalendar1.Date)));
Ele me retorna a data + a hora atual, e eu queria que ele me retornasse a data + o tempo zerado: 2012-11-28 00:00:00
Grato.
GOSTEI 0
Claudia Nogueira
27/11/2012
Primeiro adiciona DateUtils no Uses do Form.
qryAgenda.SQL.Add('SELECT * FROM cadagenda WHERE dtagendamento = ' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:mm:ss', DateOf(MonthCalendar1.Date))));
Só mais 1 coisa, como eu posso zerar o tempo do MonthCalendar ?
Quando eu faço essa consulta:
Ele me retorna a data + a hora atual, e eu queria que ele me retornasse a data + o tempo zerado: 2012-11-28 00:00:00
Grato.
Quando eu faço essa consulta:
qryAgenda.SQL.Add('SELECT * FROM cadagenda WHERE dtagendamento = ' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:mm:ss' MonthCalendar1.Date)));
Ele me retorna a data + a hora atual, e eu queria que ele me retornasse a data + o tempo zerado: 2012-11-28 00:00:00
Grato.
GOSTEI 0
Vander Carlos
27/11/2012
Isso mesmo =)
Muito obrigadooo.
Muito obrigadooo.
GOSTEI 0
Glebson Guimaraes
27/11/2012
Isso mesmo =)
Muito obrigadooo.
Muito obrigadooo.
kara pelo amor de Deus não Sei Como fazer essa agenda me ajuda ai por favor por onde eu começo?
Tenho um a cliente que quer uma agenda assim
GOSTEI 0
Vander Carlos
27/11/2012
Já tem todas as tabelas feitas ?
GOSTEI 0
Glebson Guimaraes
27/11/2012
Já tem todas as tabelas feitas ?
quais sao que precisa para essa agenda?
GOSTEI 0
Vander Carlos
27/11/2012
Só criar a tabela da agenda rsrs... Ela só quer um sistema pra agendamento ?
GOSTEI 0
Jeferson Machia
27/11/2012
Olá Claudiadnh estava procurando um e-mail para contato, vi que deu algumas dicas para um pessoal sobre agenda em stringGrid, preciso montar uma para um cliente meu, e estou meio perdido se puder me dar algumas dicas ao menos para direcionar para algum lugar. Obriagdo.
GOSTEI 0
Cleber Oliveira
27/11/2012
tambem estou precisando de uma ajuda com uma agenda medica nem sei por onde começar meu email e crbosjrp@gmail.com
GOSTEI 0
Robson Morais
27/11/2012
Bom dia, eu fiz a agenda de 2 maneiras....1 criando dinamicamente edit para cada horário configurado, ficou rapido e leve e outra utilizando a agenda do tms software, muito boa.
GOSTEI 0