Olá pessoal tenho uma dúvida com o uso do calendar no rich faces, é o seguinte:
tenho dois calendarios que pegam datas cadastradas no banco de dados para uma rotina de recebimento e devolução, até ai ta tudo tranquilo, ele pega as datas cadastra e traz blz.
O que eu quero é que quando o calendario de recebimento já estiver setado(pego do banco), este fique desabilitado para edição só podendo dar uma data para o calendário de devolução. E se os dois estiverem setados, ou seja já existe um recebimento e devolução, os dois fiquem livres para escolha de novas datas.
<h:outputLabel for="inputDataRecebimento" value="Data de Recebimento do Serviço:" />
<rich:calendar id="inputDataRecebimento" datePattern="dd/MM/yyyy" value="#{ManterRecebimento.serv.dataRecebe}" rendered="#{ManterRecebimento.serv.dataDevolve == null}" required="true" requiredMessage="* 'DATA DE RECEBIMENTO' não informado."
inputClass="txtData" enableManualInput="true" direction="top-right" mode="client" />
<h:outputLabel for="inputDataDevolucao" value="Data Devolução do Serviço:"/>
<rich:calendar id="inputDataDevolucao" datePattern="dd/MM/yyyy" value="#{ManterRecebimento.serv.dataDevolve}" rendered="#{ManterRecebimento.serv.dataDevolve == null}" inputClass="txtData" enableManualInput="true" direction="top-right" mode="client" />
O erro desse código é que quando a data é nula ele desaparece com o calendário e eu quero que apareça mas com seu valor limpo para inserir nova data de recebimento e devolução caso haja as duas ou só devolução caso o recebimento já exista.
Alguma dica??
Agradeço desde já
<h:outputLabel for="inputDataRecebimento" value="Data de Recebimento do Serviço:" />
<rich:calendar id="inputDataRecebimento" datePattern="dd/MM/yyyy" value="#{ManterRecebimento.serv.dataRecebe}" disabled="#{ManterRecebimento.serv.dataRecebe != null}" required="true" requiredMessage="* 'DATA DE RECEBIMENTO' não informado."
inputClass="txtData" enableManualInput="true" direction="top-right" mode="client" />
<h:outputLabel for="inputDataDevolucao" value="Data Devolução do Serviço:"/>
<rich:calendar id="inputDataDevolucao" datePattern="dd/MM/yyyy" value="#{ManterRecebimento.serv.dataDevolve}" disabled="#{ManterRecebimento.serv.dataRecebe == null}" inputClass="txtData" enableManualInput="true" direction="top-right" mode="client" />
valeu cara deu certo para o meu primeiro problema.
Mas se tiver a data de recebimento não preenchida ele desabilita o campo devolve, pq nuam posso devolver algo que não foi recebido ok, porem ele desabilita mas com a data da devolução do banco, o que eu quero é que ele desabilite e não apareca a data pega no banco, e se os calendar estiverem com com data de recebimento e devolução preenchida, como faço para zerar os dois calendar para o próximo recebimento ?
Vlw por responder
bom, se vc nao quer que aparecam as datas que estao no seu banco, porque vc esta fazendo o bind desses valores no calendar pra comeco de conversa? nao existe magica, o codigo faz o que vc esta mandando ele fazer …
creio que isso seja algo que vc tem que resolver no seu fluxo, proximo recebimento nao seria um registro novo? sendo assim, os valores nao estarao preenchidos ateh o momento que alguem entrar esses valores, certo? se vc quer ter um novo recebimento, vc deveria ter algo na tela como proximo recebimento, e esta action por si soh deveria prover uma forma de um novo registro ser criado pra vc, seja chamando um servico, ou seja la o que vc for que vc usa nas suas camadas … mas vc tem que codificar isso … novamente, nao existe magica …
bom, se vc nao quer que aparecam as datas que estao no seu banco, porque vc esta fazendo o bind desses valores no calendar pra comeco de conversa? nao existe magica, o codigo faz o que vc esta mandando ele fazer …
creio que isso seja algo que vc tem que resolver no seu fluxo, proximo recebimento nao seria um registro novo? sendo assim, os valores nao estarao preenchidos ateh o momento que alguem entrar esses valores, certo? se vc quer ter um novo recebimento, vc deveria ter algo na tela como proximo recebimento, e esta action por si soh deveria prover uma forma de um novo registro ser criado pra vc, seja chamando um servico, ou seja la o que vc for que vc usa nas suas camadas … mas vc tem que codificar isso … novamente, nao existe magica … [/quote]
Então cara na verdade é assim quando falei
quiz dizer a data de devolução quando estiver com data de recebimento e devolução preenchida, o que esta acontecendo agora.
na verdade pensei em fazer isso pq já tinha usado o rich column com o rendered dessa forma:
e achei que fosse possivel usar o rendered com o calendar dependendo da minha condição.
Vou tentar entaum outra forma de implementação.
Obrigado pelas respostas
Abraço