Olá pessoal sou novo no forum por isso me desculpem por algum erro cometido . . .
Gostaria de pedir ajuda em relação a minha aplicação. Apesar de “Agenda” ser um assunto bastante comentado meu problema é um pouquinho mais complicado.
Na teoria . . . na hora do cadastro de um novo compromisso na agenda, o usuario selecionaria um dia do calendario para cadastrar seu compromisso . . . e além disso ele escolheria uma hora para inicio e termino do seu compromisso. Até ai ta tudo certo. Porém como posso salvar estas informações em meu banco que possibilite ao usuario, quando for visualizar sua agenda, ela possa lhe informar quais horarios estão vagos naquele dia, ou se não existem horarios vagos naquele dia.
Obs.: não quero codigo pronto, apenas ideias de como posso implementar isso .
vc pode fazer uma busca onde um campo (ex: compromisso) seja nullo ou algo do genero…
assim quando vc for buscar, sabe que o usuario não adicinou nenhum compromisso naquele dia ou horário…
e outra pesquisa para ver se tem algum horário naqele dia em que esse campo (ex: compromisso) não setá com valor…
Bom temos 2 momentos aí e ambos podem dizer o que você precisa…
1º - Antes de marcar um compromisso, você terá uma lista de horários vagos. Imagina que esse será seu primeiro compromisso agendado. Pergunto: essa agenda disponibilizará horários nas 24 horas do dia ?? O lado bom é que para disponibilizar os horários aqui, não precisas ter nada gravado no banco, basta montar um quadro com os horários disponíveis que todos conhecemos (essa é minha idéia sem conhecer como queres apresentar tua agenda);
2º - Quando fores marcar um compromisso e colocares data + (HI - HF), verifica se a data e a hora em que estás marcando, está dentro de um espaço já ocupado. Pra melhorar ainda mais, poderias quando selecionar a Data, construirias uma tabela que já traria somente os horários vagos para aquele dia;
Entendo que, no banco de dados, você terá uma tabela “compromisso”. Como cada compromisso poderá ser em mais de um dia e hora (visitar cliente, por exemplo), mas um dia e hora não podem ter mais de 1 compromisso, é uma relação 1 : N. Um evento pode estar em mais de um dia e hora, mas um dia e hora só aceitam um evento.
Assim sendo, os campos dia, hora_ini e hora_fim devem ser preenchidos (talvez hora_fim possa ser omitido, depende o caso) no cadastro. Quando o usuário abre a tela para consulta, você lê o banco, procurando por data (where dia = hoje) e, carrega os compromissos (deve haver um nome, algo assim) e as horas de início e fim.
Coloca numa lista e vai informando na tela.
Eu fiz algo mais ou menos parecido no TCC, agenda de médico…
[quote=adriano_si]Bom temos 2 momentos aí e ambos podem dizer o que você precisa…
1º - Antes de marcar um compromisso, você terá uma lista de horários vagos. Imagina que esse será seu primeiro compromisso agendado. Pergunto: essa agenda disponibilizará horários nas 24 horas do dia ?? O lado bom é que para disponibilizar os horários aqui, não precisas ter nada gravado no banco, basta montar um quadro com os horários disponíveis que todos conhecemos (essa é minha idéia sem conhecer como queres apresentar tua agenda);
2º - Quando fores marcar um compromisso e colocares data + (HI - HF), verifica se a data e a hora em que estás marcando, está dentro de um espaço já ocupado. Pra melhorar ainda mais, poderias quando selecionar a Data, construirias uma tabela que já traria somente os horários vagos para aquele dia;
Essa é a minha idéia…
Abs [][/quote]
opa primeiro vlw pela dica . . .
O problema e que no meu caso no primeiro momento como eu poderia ter uma lista de compromissos vagos, visto que meu compromisso não tem um tempo especifico? Ou seja eu posso ter compromissos de 15 min, 20 min etc . . . E a respeito dos horarios, a agenda só aceitaria umas 11 ou 12 horas de compromisso por dia.
O segundo momento eu achei interessante, mas e como eu poderia listar os horarios vagos do dia se eu não vou preencher TODO o dia com compromissos?
[quote=drsmachado]
. . . Assim sendo, os campos dia, hora_ini e hora_fim devem ser preenchidos (talvez hora_fim possa ser omitido, depende o caso) no cadastro. Quando o usuário abre a tela para consulta, você lê o banco, procurando por data (where dia = hoje) e, carrega os compromissos (deve haver um nome, algo assim) e as horas de início e fim.
Coloca numa lista e vai informando na tela.
Eu fiz algo mais ou menos parecido no TCC, agenda de médico…[/quote]
Esse é meu objetivo kra, Listar os horarios : DIA: xx/xx/xx HORA: xx : xx : xx(hora inicial) - xx : xx : xx(hora final) COMPROMISSO:
Mas como eu fasso para por exemplo na tela de cadastro, atualizar um dia que ja tem algum compromisso cadastrado sem que eu repita horarios que ja estão cadastrados no banco para aquele dia?
Outra questão é que os dias que ja estão com a agenda cheia, ou seja os dias que não tem mais espaços para novos compromissos, ficassem desabilitados na hora de cadastrar novos compromissos.
Muito obrigado pela ajuda pessoal esta sendo muito util para mim por a mente pra funcionar . . .
Penso que você não precisaria de uma Tabela com todos os horários cadastrados… Você só precisa registrar os horários que de fatro têm algum compromisso firmado.
Uma dica que dou é:
Ainda vai existir para cada dia, uma Lista de horas com as 24 horas do dia. Sempre que fores agendar uma hora, vais trazer do BD todos os compromissos já agendados para aquela data e removeres o horário da tua lista, lembrando que se um compromisso for de 20 minutos, ele não ocupará uma hora cheia da tua agente, logo, esse horário ainda aparecerá na tua lista, porém com alguma indicação de que não está completamente preenchida. Compromissos sem hora_final preenchidos ocuparão toda a agenda daquela data, ou de várias datas de acordo com o que disseres no momento da marcação…
Enfim, falta refinar tua idéia, mas acho que estás no rumo certo…
Bom depois de uma longa noite sonhando com jFrames ^^ . Pensei em uma solução baseada nas dicas que vcs me deram: quando a pessoa entrar na agenda ela cadastra primeiro o dia de compromissos, inserindo o horario inicial(Hora_Ini) e o horario final(Hora_Fim) dos compromissos do dia, essas informações ficarão em uma tabela Cadastro_Dia por exemplo. Ai a pessoa vai cadastrar o compromisso, setando o Dia, hora inicial do compromisso e quanto tempo vai durar o evento. Porém quando ele selecionar o Dia em que vai cadastrar o evento, a aplicação vai listar os eventos do dia e a quantidade de tempo vago pra armazenar compromissos naquele dia. . . Agora que vem a jogada que naum sei se vai dar certo mas . . ., quando a pessoa escolher o dia para cadastrar seu evento, o banco vai listar, se nao houver nenhum evento cadastrado ainda para aquele dia, a Hora_Ini (que o usuario cadastrou no Cadastro_Dia), ai a aplicação conta quanto tempo tem até o Hora_Fim e me diz quanto tempo tempo para compromissos no dia. Se ja houver eventos cadastrados no dia, em primeiro momento o prog. pega o valor de Hora_Ini e verifica quanto tempo tem até chegar no primeiro evento cadastrado e guarda a informação, então ele vai listar o(s) compromisso(s) somar o tempo do compromisso com aquele valor ja guardado, fazendo o mesmo processo para os demais compromissos ate terminar o tempo do dia (Hora_Fim).
Ai para me retornar que o dia xx/xx/xxxx esta com a agenda cheia ele pega as somatorias da lista de compromissos, e diminui com a soma das horas do dia cadastrado, se o valor for igual, retorna AGENDA PARA ESTE DIA JA ESTA FECHADA.
Ufa quase nada neh heheheh.
E ai pessoal será que isso pode dar certo?