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:outputLabelfor="inputDataRecebimento"value="Data de Recebimento do Serviço:"/><rich:calendarid="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:outputLabelfor="inputDataDevolucao"value="Data Devolução do Serviço:"/><rich:calendarid="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
balrog
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 …
satangoss
balrog:
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 …
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:
<rich:columnid="nivelStatus"><h:outputTextvalue="Contratado"id="nivel0"rendered="#{servico.status_servico == 0}"/><h:outputTextvalue="Recebido para Analise"id="nivel1"rendered="#{servico.status_servico == 1}"/><h:outputTextvalue="Recebido com Ajustes"id="nivel2"rendered="#{servico.status_servico == 2}"/><h:outputTextvalue="Recebido OK"id="nivel3"rendered="#{servico.status_servico == 3}"/><h:outputTextvalue="Rejeitado"id="nivel4"rendered="#{servico.status_servico == 4}"/></rich:column>
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