Grid

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
(New page: <pre>Code provided by Miki.</pre> ---------------------- Para comenzar deben revisar: 1.- Si tienen en su /siga/lib la carpeta /helper y dentro de esa el archivo FooBarHelper.php. 2.- Si ...)
 
(8 ediciones intermedias no se muestran.)
Línea 1: Línea 1:
-
<pre>Code provided by Miki.</pre>
+
<pre>Code provided by Miki && Luelher.</pre>
----------------------
----------------------
Para comenzar deben revisar:
Para comenzar deben revisar:
-
1.- Si tienen en su /siga/lib la carpeta /helper y dentro de esa el archivo FooBarHelper.php.
+
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
2.- Si en /siga/web/js se encuentra el archivo tools.js
3.- Si en /siga/web/images/ se encuentra el archivo delete.png
3.- Si en /siga/web/images/ se encuentra el archivo delete.png
--------------------------------------------------------------
--------------------------------------------------------------
-
Luego creamos el arreglo de objetos resultante de nuestra consulta sql, esto iria en el actions.class de nuestra forma:
+
Luego creamos el arreglo de objetos resultante de nuestra consulta sql, esto estaría en el actions.class de nuestra forma:
<pre>
<pre>
-
$c = new Criteria();
+
$c = new Criteria();  
-
$c->add(CiasiiniPeer::CODPRE,str_pad($this->ciasiini->getCodpre(),32,' '));
+
$c->add(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro());
-
$c->add(CiasiiniPeer::PERPRE,'00',Criteria::NOT_EQUAL);
+
$per = ForpryorgpubPeer::doSelect($c);
-
$c->addAscendingOrderByColumn(CiasiiniPeer::PERPRE);
+
-
$this->per = CiasiiniPeer::doSelect($c);
+
</pre>
</pre>
Línea 19: Línea 17:
--------------------------------------------------------------
--------------------------------------------------------------
-
Luego en el edit_form de la forma en la que estamos trabajando, colocar arriba:
+
Luego en el editSuccess de la forma en la que estamos trabajando, agregar el helper "Grid":
<pre>
<pre>
-
<?php use_helper('FooBar'); ?>
+
<?php use_helper('Object', 'Validation', 'ObjectAdmin', 'I18N', 'Date', 'tabs', 'Javascript', 'PopUp', 'Grid') ?>
</pre>
</pre>
--------------------------------------------------------------
--------------------------------------------------------------
-
Y luego dentro del mismo edit, donde vayamos a colocar el grid:
+
Hacemos el llamado del helper donde queramos colocarlo. En este ejemplo seria en _edit_form.php luego de los objetos principales y antes de los botones de guardar los datos.
-
<pre>
+
-
//Las columnas del grid son manejadas de la siguiente manera:
+
-
//Columna 1 = primer dato de la bd a mostrar en el grid
+
-
//Columna 2 = segundo dato de la bd a mostrar en el grid
+
 +
<pre>
 +
<form name="form1" id="form1">
<?
<?
-
$filas=17;  //filas predeterminadas con las que se va a cargar el grid, si es mayor que la cantidad de datos de la bd, añade las otras filas vacias
+
echo grid_tag($obj);
-
$eliminar=true;  //si el grid va a llevar la columna de eliminar o no.
+
-
$titulos=array("Periodo","Monto");  //el titulo por cada una de las columnas del grid (*)
+
-
$anchos=array("3%","94%");  //el ancho de cada una de las columnas del grid (*)
+
-
$alignf=array("center","right");  //la alineacion de los objetos que se encuentran en cada una de las columnas del grid (*)
+
-
$alignt=array("center","right");  //la alineacion de los datos dentro de la caja de texto de las columnas del grid (*)
+
-
$campos=array("Perpre","Mondis");  //los campos de la bd, de cada una de las columnas del grid, si no es dato de la bd, colocamos "".
+
-
$montos=array("2"); //Nro. de la columna(s) del grid que van a ser de tipo "monto-moneda". Ej: en este caso solo la columna "2" del grid
+
-
$totales=array("total"); //Nombre de la(s) caja(s) de texto donde se mostraran los totales de las columnas tipo monto. En el orden de "$montos"
+
-
$html=array('type="text" size="2"','type="text" size="10"');  //Config HTML de las cajitas de texto de cada columna del grid.
+
-
$js=array('','onKeypress="entermonto(event,this.id)"'); //Funciones JS asociadas a la cajita de cada columna del grid.
+
-
 
+
-
//En este ejemplo $per es el arreglo de objetos que resulta de mi consulta SQL
+
-
echo grid_tag($filas,$eliminar,$titulos,$anchos,$alignf,$alignt,$campos,$montos,$totales,$html,$js,$per);
+
?>
?>
 +
</form>
 +
</pre>
 +
----------------------------------------------------------------
 +
 +
Pasar al _edit_form.php la variable $obj a través del editSuccess de la siguiente forma:
 +
 +
<pre>
 +
                                                                                                              |
 +
                                                                                                        --------------
 +
                                                                                                        |            |
 +
<?php include_partial('fordefproyecto/edit_form', array('fordefpry' => $fordefpry, 'labels' => $labels, 'obj' => $obj)) ?>
 +
</pre>
 +
 +
La configuración al Grid, se tiene que agregar en el action.class.php:
 +
 +
 +
<pre>
 +
 +
  public function configGrid()
 +
  {
 +
    $c = new Criteria();   
 +
    $c->add(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro());
 +
    $per = ForpryorgpubPeer::doSelect($c);
 +
     
 +
    $opciones = new OpcionesGrid();
 +
    $opciones->setEliminar(true);
 +
    $opciones->setTabla('forpryorgpub');
 +
    $opciones->setAnchoGrid(500);       
 +
    $opciones->setTitulo('');   
 +
    $opciones->setHTMLTotalFilas(' ');
 +
     
 +
    $col1 = new Columna('Código');
 +
    $col1->setTipo(Columna::TEXTO);
 +
    $col1->setEsGrabable(true);
 +
    $col1->setAlineacionObjeto(Columna::CENTRO);
 +
    $col1->setAlineacionContenido(Columna::CENTRO);
 +
    $col1->setNombreCampo('codorg');
 +
    $col1->setCatalogo('fordeforgpub','sf_admin_edit_form',array(2));
 +
    $col1->setAjax('fordefproyecto',1,2);     
 +
         
 +
    $col2 = new Columna('Descripción');
 +
    $col2->setTipo(Columna::TEXTO);
 +
    $col2->setAlineacionObjeto(Columna::IZQUIERDA);
 +
    $col2->setAlineacionContenido(Columna::IZQUIERDA);
 +
    $col2->setNombreCampo('nomorg');
 +
    $col2->setHTML('type="text" size="25" disabled=true');       
 +
   
 +
    $opciones->addColumna($col1);
 +
    $opciones->addColumna($col2);   
 +
     
 +
    $this->obj = $opciones->getConfig($per);
 +
 
 +
  }
 +
</pre>
</pre>
Línea 53: Línea 90:
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]]

Última versión de 14:12 29 jun 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(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro());
$per = ForpryorgpubPeer::doSelect($c);

Entonces le pasamos al edit_form nuestro objeto "$this->per" a traves del edit_success


Luego en el editSuccess de la forma en la que estamos trabajando, agregar el helper "Grid":

<?php use_helper('Object', 'Validation', 'ObjectAdmin', 'I18N', 'Date', 'tabs', 'Javascript', 'PopUp', 'Grid') ?>

Hacemos el llamado del helper donde queramos colocarlo. En este ejemplo seria en _edit_form.php luego de los objetos principales y antes de los botones de guardar los datos.

<form name="form1" id="form1">
<?
echo grid_tag($obj);
?>
</form>

Pasar al _edit_form.php la variable $obj a través del editSuccess de la siguiente forma:

                                                                                                              |
                                                                                                        --------------
                                                                                                        |            |
<?php include_partial('fordefproyecto/edit_form', array('fordefpry' => $fordefpry, 'labels' => $labels, 'obj' => $obj)) ?>

La configuración al Grid, se tiene que agregar en el action.class.php:



  public function configGrid()
  {
    $c = new Criteria();    
    $c->add(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro());
    $per = ForpryorgpubPeer::doSelect($c);
    	  
    $opciones = new OpcionesGrid();
    $opciones->setEliminar(true);
    $opciones->setTabla('forpryorgpub');
    $opciones->setAnchoGrid(500);        
    $opciones->setTitulo('');    
    $opciones->setHTMLTotalFilas(' ');
       
    $col1 = new Columna('Código');
    $col1->setTipo(Columna::TEXTO);
    $col1->setEsGrabable(true);
    $col1->setAlineacionObjeto(Columna::CENTRO);
    $col1->setAlineacionContenido(Columna::CENTRO);
    $col1->setNombreCampo('codorg');
    $col1->setCatalogo('fordeforgpub','sf_admin_edit_form',array(2));
    $col1->setAjax('fordefproyecto',1,2);      
           
    $col2 = new Columna('Descripción');
    $col2->setTipo(Columna::TEXTO);
    $col2->setAlineacionObjeto(Columna::IZQUIERDA);
    $col2->setAlineacionContenido(Columna::IZQUIERDA);
    $col2->setNombreCampo('nomorg');
    $col2->setHTML('type="text" size="25" disabled=true');         
    
    $opciones->addColumna($col1);
    $opciones->addColumna($col2);    
    	  
    $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

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas