tengo una acción que abre un modal con una vista transtoria simplemente para escoger el tipo de informe que se quiere imprimir.
La vista sólo contiene un combo (Valorado, y Sin Valorar ... de un enum) y un botón, que dispara la JasperReportBaseAcion en cuestión.
@Override
public void execute() throws Exception {
// Crear el diálogo modal y establecer el modelo a usar
showDialog();
// showNewView();
getView().setTitleId("tipo_informe");
getView().setModelName("InformeTipo");
addActions("AccionesDocumentos.imprimirDocumento");
}
Y el modelo de esta vista sólo contiene:
private TipoInforme tipoInforme;
public enum TipoInforme {
Valorado, SinValorar
}
... getters and setters
El problemilla que me encuentro es, que no quiero que el combo tenga la posibilidad de vacío.
Buscando por el foro encontré que al parecer hay que poner @Required pero al menos en mi caso no funciona, y puedo disparar la acción del diálogo.
Aunque no me gusta esta solución, he pensado en quizás controlarlo desde dentro de la acción que dispara el botón del diálogo, con algo del tipo:
if (getView().getValue("tipoInforme")==null) {
addError("informetipo_no_seleccionado");
}
Y aunque el error si aparece en pantalla, también se dispasra igualmente el informe y no sé como cancelarlo.
Saludos.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
El DefaultValueCalculator no me ha funcionado.
He probado con
@Override
public Object calculate() throws Exception {
return "Valorado";
}
con return 0, return 1, y nada.
Respecto a la cancelación de la acción...
Si, añadiéndolo funciona a la perfección.
Y si, lo lógico sería que por defecto si se lanza algún error que cancele la acción, pero con posibilidad de deshacerlo, porque, aunque serían las que menos, si pueden existir casos donde se quiera continuar con la acción en sí a pesar de un error.
Saludos.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hola a todos,
tengo una acción que abre un modal con una vista transtoria simplemente para escoger el tipo de informe que se quiere imprimir.
La vista sólo contiene un combo (Valorado, y Sin Valorar ... de un enum) y un botón, que dispara la JasperReportBaseAcion en cuestión.
Y el modelo de esta vista sólo contiene:
El problemilla que me encuentro es, que no quiero que el combo tenga la posibilidad de vacío.
Buscando por el foro encontré que al parecer hay que poner @Required pero al menos en mi caso no funciona, y puedo disparar la acción del diálogo.
Aunque no me gusta esta solución, he pensado en quizás controlarlo desde dentro de la acción que dispara el botón del diálogo, con algo del tipo:
Y aunque el error si aparece en pantalla, también se dispasra igualmente el informe y no sé como cancelarlo.
Saludos.
Hola Giuseppe,
¿Has probado combinar @Required con @DefaultValueCalculator?
Añade esto a tu acción:
Pensándolo bien, esto debería funcionar así por defecto. ¿No crees?
Ayuda a otros en este foro como yo te ayudo a ti.
El DefaultValueCalculator no me ha funcionado.
He probado con
con return 0, return 1, y nada.
Respecto a la cancelación de la acción...
Si, añadiéndolo funciona a la perfección.
Y si, lo lógico sería que por defecto si se lanza algún error que cancele la acción, pero con posibilidad de deshacerlo, porque, aunque serían las que menos, si pueden existir casos donde se quiera continuar con la acción en sí a pesar de un error.
Saludos.
Hola Giuseppe,
Tienes razón. No está soportado, de momento.
Yo pienso igual. Añádelo como Feature Request con un vínculo a este hilo y lo modificaremos.
Por supuesto, porque siempre podrás sobreescribir el getForwardURI().
Ayuda a otros en este foro como yo te ayudo a ti.