Objetos Configuración Grid
De CidesaWiki
Revisión a fecha de 16:48 30 abr 2007; Lhernandez (Discusión | contribuciones)
Estos Objetos sirven para agilizar la configuración del grid.
- Columna: Representa la configuración de una columna del grid, se crearan tantos objetos Columna como columnas tenga el Grid.
Este objeto contiene las siguientes funciones:
/** * Estable el nombre de la cabecera de la columna * * @param $val (string) Nombre de la cabecera * @return void */ public function setTitulo($val) /** * Estable la Alineación del objeto, puede ser las * constantes CENTRO,IZQUIERDA o DERECHA. * Por defecto IZQUIERDA * * @param $val (string) Alineación, ej. Columna::CENTRO * @return void */ public function setAlineacionObjeto($val) /** * Estable la Alineación del contenido del objeto, puede ser las * constantes CENTRO,IZQUIERDA o DERECHA * Por defecto IZQUIERDA * * @param $val (string) Alineación, ej. Columna::CENTRO * @return void */ public function setAlineacionContenido($val) /** * Estable el nombre del campo en la tabla que * contiene los datos del campo. * * @param $val (string) Nombre del Campo en la BD * @return void */ public function setNombreCampo($val) /** * Estable el tipo de objeto que es la columna * ej. TEXTO, MONTO o FECHA * * @param $val (string) Tipo de Objeto Columna::TEXTO * @return void */ public function setTipo($val) /** * Estable si la columna es numérica o no * * @param $val (bool) true/false * @return void */ public function setEsNumerico($val) /** * Estable si la columna numérica debe ser totalizada, * y el objeto que contendrá el valor * * @param $val (bool) true/false * @param $obj Nombre del Objeto Html donde se colocara el resultado de la totalización (string) * @return void */ public function setEsTotal($val,$obj='') /** * Estable el código JS que se colocará en cada objeto de la columna * * @param $val (string) Código JS * @return void */ public function setJScript($val) /** * Estable el código HTML adicional a ser insertado en los * objetos de la columna * * @param $val (string) Código HTML * @return void */ public function setHTML($val) /** * Estable si los objetos de la columa deben ser guardados * * @param $val (bool) true/false * @return void */ public function setEsGrabable($val) /** * Estable si los objetos de la columna tendrán un catálogo * para busqueda rápida de datos * * @param $clase (string) Nombre de la tabla/clase de donde se genera el catalogo * @param $form (string) Objeto html form donde estan los objetos a actualizar por el catálogo * @param $objadic (string) Objeto donde se colcorá la información adicional del catálogo * @return void */ public function setCatalogo($clase,$form,$objadic=0) /** * Estable si los objetos de la columa deben ser guardados * * @param $idFunc (int) Identificador del codigo a ejecutar (con respecto a la función executeAjax()) * @param $objmost (int) Indice del objeto donde se mostrar la informacion adicional * @return void */ public function setAjax($idFunc,$objmost) /** * Constructor de la columna * * @param $val (string) Título de la columna * @return void */ public function Columna($name) // Constructor /** * Obtiene el Título de la columna * * @return string */ public function getTitulo() /** * Obtiene la alineación del Objeto * * @return string */ public function getAlineacionObjeto() /** * Obtiene La alineación del contenido del objeto * * @return string */ public function getAlineacionContenido() /** * Obtiene el nombre del campo en la tabla a la que hace referencia * * @return string */ public function getNombreCampo() /** * Obtiene el tipo de objeto que contendra la columna * * @return string */ public function getTipo() /** * Indica si la columna es o no numérica * * @return bool */ public function isNumerico() /** * Indica si la columan debe ser totalizada * * @return bool */ public function isTotal() /** * Obtiene el Objeto donde se colcará el resultado de la totalización de la columna * * @return string */ public function getObjetoTotal() /** * Obtiene el código JavaScript que se insertará en los objetos de la columna * * @return string */ public function getJScript() /** * Obtiene el código HTML que se insertará en los objetos de la columna * * @return string */ public function getHTML() /** * Indica si los objetos de la columan deben tomados en cuenta para * ser guardados en la base de datos. * * @return bool */ public function isGrabable() /** * Obtiene La codificación para insertar una busqueda por catálogo * en los objetos de la columna * * @param $pos (int) Posicion de la columna donde se colocará el dato adicional * @return string */ public function getCatalogo($pos='#') /** * Obtiene La codificación para hacer el llamado a una funcion AJAX * en los objetos de la columna * * @return string */ public function getAjax($objcompl='#')
- OpcionesGrid: Este objeto guarda y procesa todos los datos del grid. Contiene las siguientes funciones
/** * Crea una nueva columna dentro del objeto de opciones * Esta columna contiene los datos de configuracion * Cada columna nueva contiene informacion predeterminada * * @param $name Titulo de la nueva columna * @return bool */ public function newColumna($name='') /** * Crea una nueva columna dentro del objeto de opciones * Esta columna contiene los datos de configuracion * Cada columna nueva contiene informacion predeterminada * * @param $obj Objeto Columna * @return bool */ public function addColumna($obj) /** * Establece si se coloca el icono de eliminar en cada fila * * @param $val (bool) true/false * @return bool */ public function setEliminar($val) /** * Establece el título del Grid * * @param $val (string) Título del Grid * @return bool */ public function setTitulo($val) /** * Establece el Nro de filas adicionales para insertar * nuevos datos en el grid. Por defecto 15 * * @param $val (int) Cantidad de fila nuevas * @return bool */ public function setFilas($val) /** * Establece el código HTML que se colocará al final del grid para * generar los objetos con los totales * * @param $val (string) Código HTML a ser introducido al final de grid * @return bool */ public function setHTMLTotalFilas($val) /** * Establece la tabla de la cual se traen los datos del grid * * @param $val (string) Nombre de la Tabla/Clase * @return bool */ public function setTabla($val) /** * Estable el ancho total del Grid * * @param $val (string) Nombre de la Tabla/Clase * @return bool */ public function setAnchoGrid($val) /** * Genera el arreglo de configuracion que será enviado al GridHelper * * @param $per (object) Arreglo de objetos/registros * @return array */ public function getConfig($per)
- Ejemplo:
$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);
NOTA: la funcion clone es de php, y se encarga de generar un objeto a partir de otro copiando los datos que este tiene.