Grid
De CidesaWiki
| Línea 77: | Línea 77: | ||
$col1->setAlineacionContenido(Columna::CENTRO); | $col1->setAlineacionContenido(Columna::CENTRO); | ||
$col1->setNombreCampo('codalm'); | $col1->setNombreCampo('codalm'); | ||
| - | + | $col1->setCatalogo('cadefalm','sf_admin_edit_form','2'); | |
| - | + | $col1->setAjax(2,2); | |
| - | + | $col2 = new Columna('Descripción'); | |
| - | + | $col2->setTipo(Columna::TEXTO); | |
| - | + | $col2->setAlineacionObjeto(Columna::IZQUIERDA); | |
| - | + | $col2->setAlineacionContenido(Columna::IZQUIERDA); | |
| - | + | $col2->setNombreCampo('codalm'); | |
| - | + | $col2->setHTML('type="text" size="25" disabled=true'); | |
| - | + | $col3 = clone $col1; | |
| - | + | $col3->setTitulo('Cod. Ubicacion'); | |
| - | + | $col3->setNombreCampo('codubi'); | |
| - | + | $col3->setCatalogo('cadefubi','sf_admin_edit_form','4'); | |
| - | + | $col3->setJScript('onKeyDown="javascript:return dFilter (event.keyCode, this,'.chr(39).$mascaraubicacion.chr(39).')" onKeyPress="javascript:cadena=rayaenter(event,this.value);if (event.keyCode==13 || event.keyCode==9){document.getElementById(this.id).value=cadena;}"'); | |
| - | + | $col3->setAjax(3,4); | |
| - | + | $col4 = clone $col2; | |
| - | + | $col4->setTitulo('Ubicación'); | |
| - | + | $col4->setNombreCampo('Nomubi'); | |
| - | + | $col5 = new Columna('Exi. Mínima'); | |
| - | + | $col5->setTipo(Columna::MONTO); | |
| - | + | $col5->setEsGrabable(true); | |
| - | + | $col5->setAlineacionContenido(Columna::IZQUIERDA); | |
| - | + | $col5->setAlineacionObjeto(Columna::IZQUIERDA); | |
| - | + | $col5->setNombreCampo('Eximin'); | |
| - | + | $col5->setEsNumerico(true); | |
| - | + | $col5->setHTML('type="text" size="10"'); | |
| - | + | $col5->setJScript('onKeypress="entermonto(event,this.id)"'); | |
| - | + | $col6 = clone $col5; | |
| - | + | $col6->setTitulo('Exi. Máxima'); | |
| - | + | $col6->setNombreCampo('Eximax'); | |
| - | + | $col7 = clone $col5; | |
| - | + | $col7->setTitulo('Exi. Actual'); | |
| - | + | $col7->setNombreCampo('Exiact'); | |
| - | + | $col7->setEsTotal(true,'caregart_exitot'); | |
| - | + | $col8 = clone $col5; | |
| - | + | $col8->setTitulo('Reorden'); | |
| - | + | $col8->setNombreCampo('Ptoreo'); | |
| - | + | // Se guardan las columnas en el objetos de opciones | |
| - | + | $opciones->addColumna($col1); | |
| - | + | $opciones->addColumna($col2); | |
| - | + | $opciones->addColumna($col3); | |
| - | + | $opciones->addColumna($col4); | |
| - | + | $opciones->addColumna($col5); | |
| - | + | $opciones->addColumna($col6); | |
| - | + | $opciones->addColumna($col7); | |
| - | + | $opciones->addColumna($col8); | |
| - | + | // Ee genera el arreglo de opciones necesario para generar el grid | |
| - | + | $this->obj = $opciones->getConfig($per); | |
</pre> | </pre> | ||
| Línea 139: | Línea 139: | ||
Nota: para agregar alguna funcion js adicional al grid, esta debera ser colocada en el edit_form en el que estas trabajando y debe ser llamada a traves del arreglo $js que le pasamos al grid_tag. | Nota: para agregar alguna funcion js adicional al grid, esta debera ser colocada en el edit_form en el que estas trabajando y debe ser llamada a traves del arreglo $js que le pasamos al grid_tag. | ||
| + | |||
| + | Si desea obtener mas información sobre los objetos de configuración para el grid puede ir al siguiente enlace [[Objetos Configuración Grid]] | ||
Revisión de 15:22 30 abr 2007
Code provided by Miki && Luelher.
Para comenzar deben revisar:
1.- Si tienen en su /siga/lib la carpeta /helper y dentro de esa el archivo GridHelper.php. 2.- Si en /siga/web/js se encuentra el archivo tools.js 3.- Si en /siga/web/images/ se encuentra el archivo delete.png
Luego creamos el arreglo de objetos resultante de nuestra consulta sql, esto estaría en el actions.class de nuestra forma:
$c = new Criteria(); $c->add(CiasiiniPeer::CODPRE,str_pad($this->ciasiini->getCodpre(),32,' ')); $c->add(CiasiiniPeer::PERPRE,'00',Criteria::NOT_EQUAL); $c->addAscendingOrderByColumn(CiasiiniPeer::PERPRE); $this->per = CiasiiniPeer::doSelect($c);
Entonces le pasamos al edit_form nuestro objeto "$this->per" a traves del edit_success
Luego en el edit_form de la forma en la que estamos trabajando, colocar arriba:
<?php use_helper('Grid'); ?>
Hay 2 formas de pasar los parámetros de configuración al Grid:
- Arreglos
$filas=17;
$cabeza="Existencia por Almacenes";
$eliminar=true;
$titulos=array("Cod. Almacen","Descripción","Cod. Ubicacion","Ubicación","Exi. Mínima","Exi. Máxima","Exi. Actual","Reorden");
$ancho="1100";
$alignf=array('center','left','center','left','right','right','right','right');
$alignt=array('center','left','center','left','right','right','right','right');
$campos=array('Codalm','Nomalm','Codubi','Nomubi','Eximin','Eximax','Exiact','Ptoreo');
$catalogos=array('Cadefalm-sf_admin_edit_form-x1-x2','','Cadefubi-sf_admin_edit_form-x3-x4','','','','','');// por todas las columnas, si no tiene, se coloca vacio
$ajax=array('2-x2-x1','','3-x4-x3','','','','',''); //parametro-cajitamostrar-autocompletar
$tipos=array('t','t','m','m','m','m'); //texto, monto, fecha --solo de los campos a grabar, no de todo el grid
$montos=array("5","6","7","8");
$totales=array("", "", "caregart_exitot", "");
$mascaraubicacion=$this->mascaraubicacion;
$html=array('type="text" size="5"','type="text" size="25" disabled=true','type="text" size="5"','type="text" size="25" disabled=true','type="text" size="10"','type="text" size="10"','type="text" size="10"','type="text" size="10"');
$js=array('','','onKeyDown="javascript:return dFilter (event.keyCode, this,'.chr(39).$mascaraubicacion.chr(39).')" onKeyPress="javascript:cadena=rayaenter(event,this.value);if (event.keyCode==13 || event.keyCode==9){document.getElementById(this.id).value=cadena;}"','','onKeypress="entermonto(event,this.id)"','onKeypress="entermonto(event,this.id)"','onKeypress="entermonto(event,this.id)"','onKeypress="entermonto(event,this.id)"');
$grabar=array("1","3","5","6","7","8");
$filatotal='';
$this->obj=array('cabeza'=>$cabeza, 'filas'=>$filas, 'eliminar'=>$eliminar, 'titulos'=>$titulos,
'ancho'=>$ancho, 'alignf'=>$alignf, 'alignt'=>$alignt, 'campos'=>$campos, 'catalogos' => $catalogos,
'ajax' => $ajax, 'tipos' => $tipos, 'montos'=>$montos, 'filatotal' => $filatotal, 'totales'=>$totales,
'html'=>$html, 'js'=>$js, 'datos'=>$per, 'grabar'=>$grabar, 'tabla' => 'Caartalm');
- Objetos de Configuración
$mascaraubicacion=$this->mascaraubicacion;
// $i18n = $this->getContext()->getI18N();
// Se crea el objeto principal de la clase OpcionesGrid
$opciones = new OpcionesGrid();
// Se configuran las opciones globales del Grid
$opciones->setEliminar(true);
$opciones->setTabla('Caartalm');
$opciones->setAnchoGrid(1150);
$opciones->setTitulo('Existencia por Almacenes');
$opciones->setHTMLTotalFilas(' ');
// Se generan las columnas
$col1 = new Columna('Cod. Almacen');
$col1->setTipo(Columna::TEXTO);
$col1->setEsGrabable(true);
$col1->setAlineacionObjeto(Columna::CENTRO);
$col1->setAlineacionContenido(Columna::CENTRO);
$col1->setNombreCampo('codalm');
$col1->setCatalogo('cadefalm','sf_admin_edit_form','2');
$col1->setAjax(2,2);
$col2 = new Columna('Descripción');
$col2->setTipo(Columna::TEXTO);
$col2->setAlineacionObjeto(Columna::IZQUIERDA);
$col2->setAlineacionContenido(Columna::IZQUIERDA);
$col2->setNombreCampo('codalm');
$col2->setHTML('type="text" size="25" disabled=true');
$col3 = clone $col1;
$col3->setTitulo('Cod. Ubicacion');
$col3->setNombreCampo('codubi');
$col3->setCatalogo('cadefubi','sf_admin_edit_form','4');
$col3->setJScript('onKeyDown="javascript:return dFilter (event.keyCode, this,'.chr(39).$mascaraubicacion.chr(39).')" onKeyPress="javascript:cadena=rayaenter(event,this.value);if (event.keyCode==13 || event.keyCode==9){document.getElementById(this.id).value=cadena;}"');
$col3->setAjax(3,4);
$col4 = clone $col2;
$col4->setTitulo('Ubicación');
$col4->setNombreCampo('Nomubi');
$col5 = new Columna('Exi. Mínima');
$col5->setTipo(Columna::MONTO);
$col5->setEsGrabable(true);
$col5->setAlineacionContenido(Columna::IZQUIERDA);
$col5->setAlineacionObjeto(Columna::IZQUIERDA);
$col5->setNombreCampo('Eximin');
$col5->setEsNumerico(true);
$col5->setHTML('type="text" size="10"');
$col5->setJScript('onKeypress="entermonto(event,this.id)"');
$col6 = clone $col5;
$col6->setTitulo('Exi. Máxima');
$col6->setNombreCampo('Eximax');
$col7 = clone $col5;
$col7->setTitulo('Exi. Actual');
$col7->setNombreCampo('Exiact');
$col7->setEsTotal(true,'caregart_exitot');
$col8 = clone $col5;
$col8->setTitulo('Reorden');
$col8->setNombreCampo('Ptoreo');
// Se guardan las columnas en el objetos de opciones
$opciones->addColumna($col1);
$opciones->addColumna($col2);
$opciones->addColumna($col3);
$opciones->addColumna($col4);
$opciones->addColumna($col5);
$opciones->addColumna($col6);
$opciones->addColumna($col7);
$opciones->addColumna($col8);
// Ee genera el arreglo de opciones necesario para generar el grid
$this->obj = $opciones->getConfig($per);
Leyenda: (*) Sin tomar en cuenta la columna "Eliminar", ésta se crea automaticamente y con unos valores estaticos
Nota: para agregar alguna funcion js adicional al grid, esta debera ser colocada en el edit_form en el que estas trabajando y debe ser llamada a traves del arreglo $js que le pasamos al grid_tag.
Si desea obtener mas información sobre los objetos de configuración para el grid puede ir al siguiente enlace Objetos Configuración Grid