Los valores por defecto no se calculan hasta que llamas a getView().reset(), como hace la acción new, por ejemplo. Añade a tu controlador la siguiente acción:
La cuestión es que no me funciona. Ya se que @DefaultValueCalculator entra en accion al presionar el boton nuevo. La idea es que cuando ingreso a la pantalla de Plu de producto tome los valores por defecto.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Se me olvido poner el on-init="true", además no puedes mezclar inglés y español, si usas controladores.xml todo tiene que estar en español, por lo que ignora action. Ponlo así:
No debes esperar que yo te ponga aquí el código para que copies y pegues en tu proyecto, sino que sabiendo la causa del problema, en este caso que has de llamar a getView().reset() para que se calculen los valores por defecto, deberías poder solucionarlo por ti mismo.
Ayuda a otros en este foro como yo te ayudo a ti.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
¿La accion PluDeProductoIniciarAction se llega a ejecutar?
¿Has definido tu módulo en application.xml o aplicacion.xml? Si es así, pon aquí la definición del módulo.
Ayuda a otros en este foro como yo te ayudo a ti.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
La acción PluDeProductoIniciarAction no se llega a ejecutar. Te aclaro que el módulo PluDeProducto funciona bien, es decir, al presionar Generar se cargandan los valores en la tabla. El tema esta en que se carguen valores por defecto al ingresar al modulo, la solución temporal que encontre, es que al presionar el boton generar se carguen los valores por defecto.
Ya encontré el problema. Cuando no defines un módulo OpenXava genera uno para ti por defecto que usa como controlador el controlador llamado como la entidad si existe. Sin embargo, cuando defines el módulo explicitamente en aplicacion.xml, los controladores son los que tu pongas, ni más ni menos.
@DefaultValueCalculator(PluDeProductoRutaCalculator.class)
private String ruta;
public String getRuta() {
return ruta;
}
public void setRuta(String ruta) {
this.ruta = ruta;
}
public class PluDeProductoRutaCalculator implements ICalculator {
}
Cabe aclarar que la clase es transitoria
Hola José:
Los valores por defecto no se calculan hasta que llamas a getView().reset(), como hace la acción new, por ejemplo. Añade a tu controlador la siguiente acción:
Ayuda a otros en este foro como yo te ayudo a ti.
El controlador quedo de la siguiente forma:
<controlador nombre="PluDeProducto">
<accion nombre="generar" oculta="true" clase="org.openxava.nizza.actions.PluDeProductoGenerarAction">
<usa-objeto nombre="xava_view"/>
</accion>
<accion nombre="exportar" oculta="true" clase="org.openxava.nizza.actions.PluDeProductoExportarAction">
<usa-objeto nombre="xava_view"/>
</accion>
<action name="iniciar" class="org.openxava.actions.NewAction" hidden="true"/>
</controlador>
Hola José:
Se me olvido poner el on-init="true", además no puedes mezclar inglés y español, si usas controladores.xml todo tiene que estar en español, por lo que ignora action. Ponlo así:
No debes esperar que yo te ponga aquí el código para que copies y pegues en tu proyecto, sino que sabiendo la causa del problema, en este caso que has de llamar a getView().reset() para que se calculen los valores por defecto, deberías poder solucionarlo por ti mismo.
Ayuda a otros en este foro como yo te ayudo a ti.
Hola Javier!!!
Te comento que no estoy pudiendo hacerlo funcionar. Te aclaro que estuve mirando https://openxava.wikispaces.com/controllers_es#Controladores-Inicializando%20un%20m%C3%B3dulo%20con%20una%20acci%C3%B3n y mi intención nunca es que me hagas el código. Pongo mi codigo completo para que me den una mano y logar cumplir mi objetivo.
<controlador nombre="PluDeProducto">
<accion nombre="generar" oculta="true" clase="org.openxava.nizza.actions.PluDeProductoGenerarAction">
<usa-objeto nombre="xava_view"/>
</accion>
<accion nombre="exportar" oculta="true" clase="org.openxava.nizza.actions.PluDeProductoExportarAction">
<usa-objeto nombre="xava_view"/>
</accion>
<accion nombre="iniciar" clase="org.openxava.nizza.actions.PluDeProductoIniciarAction" oculto="true" al-iniciar="true"/>
</controlador>
La clase PluDeProductoIniciarAction es :
package org.openxava.nizza.actions;
import org.openxava.actions.*;
public class PluDeProductoIniciarAction extends ViewBaseAction {
}
No se donde puede estar el problema
Hola José:
¿La accion PluDeProductoIniciarAction se llega a ejecutar?
¿Has definido tu módulo en application.xml o aplicacion.xml? Si es así, pon aquí la definición del módulo.
Ayuda a otros en este foro como yo te ayudo a ti.
Hola Javier:
La acción PluDeProductoIniciarAction no se llega a ejecutar. Te aclaro que el módulo PluDeProducto funciona bien, es decir, al presionar Generar se cargandan los valores en la tabla. El tema esta en que se carguen valores por defecto al ingresar al modulo, la solución temporal que encontre, es que al presionar el boton generar se carguen los valores por defecto.
<modulo nombre="PluDeProducto">
<var-entorno nombre="XAVA_SEARCH_ACTION" valor="CRUD.searchReadOnly"/>
<modelo nombre="PluDeProducto"/>
<controlador nombre="Print"/>
</modulo>
Hola José:
Ya encontré el problema. Cuando no defines un módulo OpenXava genera uno para ti por defecto que usa como controlador el controlador llamado como la entidad si existe. Sin embargo, cuando defines el módulo explicitamente en aplicacion.xml, los controladores son los que tu pongas, ni más ni menos.
Es decir, define el módulo de esta manera:
Y te funcionará. Fíjate en que hemos añadido el controlador PluDeProducto.
Ayuda a otros en este foro como yo te ayudo a ti.