Hacer que el grid mantenga los datos escritos luego del submit
De CidesaWiki
(Diferencias entre revisiones)
(New page: Para hacer que el grid mantenag los datos luego del submit se debe configurar el validateEdit de la siguiente forma <pre> public function validateEdit() { $resp=-1; if($t...) |
|||
Línea 1: | Línea 1: | ||
- | |||
Para hacer que el grid mantenag los datos luego del submit se debe configurar el validateEdit de la siguiente forma | Para hacer que el grid mantenag los datos luego del submit se debe configurar el validateEdit de la siguiente forma | ||
Línea 56: | Línea 55: | ||
<pre> | <pre> | ||
+ | public function configGrid($reg = array(),$regelim = array()){ // [1] | ||
+ | $this->regelim = $regelim; // [2] | ||
+ | |||
+ | |||
+ | if(!count($reg)>0){ // [3] | ||
+ | $c = new Criteria(); | ||
+ | $c->add(CaartaocPeer::AJUOC ,$this->caajuoc->getAjuoc()); | ||
+ | // TODO: Ampliar el Where para colocar la siguiente restricción que tiene el | ||
+ | // Código de VB: | ||
+ | // CDbl(ObtenerValorNumericoReal(CAArtOrd!CanOrd) - ObtenerValorNumericoReal(CAArtOrd!CanAju)) <> CDbl(ObtenerValorNumericoReal(CAArtOrd!CanRec)) | ||
+ | $reg = CaartaocPeer::doSelect($c); | ||
+ | } | ||
+ | |||
+ | $this->obj = Herramientas::getConfigGrid(sfConfig::get('sf_app_module_dir').'/almajuoc/'.sfConfig::get('sf_app_module_config_dir_name').'/grid_caartaoc',$reg); // [4] | ||
+ | |||
+ | |||
+ | } | ||
</pre> | </pre> |
Revisión de 21:12 23 jul 2007
Para hacer que el grid mantenag los datos luego del submit se debe configurar el validateEdit de la siguiente forma
public function validateEdit() { $resp=-1; if($this->getRequest()->getMethod() == sfRequest::POST){ $this->caajuoc = $this->getCaajuocOrCreate(); $this->updateCaajuocFromRequest(); $this->configGrid(); // [1] $grid = Herramientas::CargarDatosGrid($this,$this->obj); // [2] $this->configGrid($grid[0],$grid[1]); // [3] // Aqui van los llamados a los métodos de las clases del // negocio para validar los datos. // Los resultados de cada llamado deben ser analizados por ejemplo: $resp = Compras::validarAlmajuoc($this->caajuoc,$grid); // al final $resp es analizada en base al código que retorna // Todas las funciones de validación y procesos del negocio // deben retornar códigos >= -1. Estos código serám buscados en // el archivo errors.yml en la función handleErrorEdit() if($resp!=-1){ $this->coderror = $resp; return false; } else return true; }else return true; }
- [1]. En esta linea se carga el objetos $this->obj al llamar a la función "configGrid", el cual contiene la configuración del grid.
- [2]. Se llama a la función "CargarDatosGrid", para obtener los objetos modificados y los eliminados.
- [3]. Se vuelve a llamar al "configGrid" para reescribir las opciones del grid ($this->obj), con la información de la vista que fue obtenida con la función "CargarDatosGrid".
Luego de esto ya el objeto $this->obj contiene los registros que realmente van a ser mostrado. Cabe desatacar que los registros nuevos se mostrarán y los eliminados no, esto ya actualmente esta validado.
Por otro lado la función "configGrid" sufre una modificación que debe ser incluida:
public function configGrid($reg = array(),$regelim = array()){ // [1] $this->regelim = $regelim; // [2] if(!count($reg)>0){ // [3] $c = new Criteria(); $c->add(CaartaocPeer::AJUOC ,$this->caajuoc->getAjuoc()); // TODO: Ampliar el Where para colocar la siguiente restricción que tiene el // Código de VB: // CDbl(ObtenerValorNumericoReal(CAArtOrd!CanOrd) - ObtenerValorNumericoReal(CAArtOrd!CanAju)) <> CDbl(ObtenerValorNumericoReal(CAArtOrd!CanRec)) $reg = CaartaocPeer::doSelect($c); } $this->obj = Herramientas::getConfigGrid(sfConfig::get('sf_app_module_dir').'/almajuoc/'.sfConfig::get('sf_app_module_config_dir_name').'/grid_caartaoc',$reg); // [4] }