Preguntas frecuentes

Pregunta 1: Problema en tabular registro tras inserción.

En un patrón tabular registro (fil-lis-edi) al insertar un nuevo registro, tras pulsar el botón guardar nos está mostrando la pantalla de "no hay datos". El registro se está guardando, pero no sabemos porque razón nos está mostrando esta pantalla.

 

El problema que comentas se debe a un problema de generación de Genaro. En el mappings 'Curso__insertar', 'gvHidraSuccess', cambia el panel=editar por panel=listar.

Pregunta 2: Problemas con el case sensitive

Tenemos un problema con el case sensitive en las TPLs. Resulta que en una tpl teníamos una lista pero habíamos escrito "CWlista" con la "l" en minúscula. La cuestión es que nos iba perfecto en local. Tras subir la aplicación a otro enterno la pantalla no nos mostraba nada, ni error ni datos ni nada, aparecía en blanco y punto.
Tras darle las vueltas que ya os podéis imaginar, descubrimos el error, renombramos, volvemos a desplegar, y listo, todo funciona perfectamente.

 

El sistema operativo Windows es no CASE SENSITIVE (distingue entre mayúsculas y minúsculas), es decir, para Windows es un mismo fichero:

"pep.txt"
"Pep.txt"
"pEp.TXT"

Unix/linux (servidores de la DGTI) son sensibles a mayúsculas.

¿Cómo funciona una TPL?

Por una correspondencia entre el nombre del tag (CWLista) con el plugin que reside en igep/smarty/plugins. Si el tag es CWlista, en windows se busca el fichero PHP:

\igep\smarty\plugins\function.CWlista.php para generar el HTML y como no es CASE sensitive, encuentra ese fichero en \igep\smarty\plugins\function.CWLista.php (por eso funciona en local).

En UNIX/Linux (servidores DGTI)

\igep\smarty\plugins\function.CWlista.php que es el fichero buscado para interpretar el plugin es distinto de  \igep\smarty\plugins\function.CWLista.php que es el fichero "real", así que por eso en los servidores NO funciona.

Pregunta 3: ¿Cómo podemos limitar el resultado de la búsqueda de una ventana de selección?

Estoy teniendo problemas para limitar el número de registros en una ventana de selección.

$proyectos = new gvHidraSelectionWindow('lis_IDPROYECTO','W_PROYECTOS');

$proyectos->addMatching('lis_IDPROYECTO','id');

$proyectos->setRowsNumber(10);

$proyectos->setLimit(200);

He visto en algunos comentarios anteriores que con el valor 0 setLimit() debería hacer que se mostraran todos los registros. Sin embargo a mí, me está ocurriendo todo lo contrario ya que no me muestra ningún registro.

Mirando el debugger me encuentro con:

IgepConexion: Ejecutamos consulta: select … from …. where … AND ROWNUM <= 0

Supongo que ese setlimit cuando se le indica 0 simplemente debería quitar el rownum ¿no?

 

Debes poner el límite a -1 para indicar al framework que no reduzca el conjunto de tuplas devueltas por la consulta.

Pregunta 4: ¿Se puede lanzar una acción de interfaz desde un BotonTooltip?

Me gustaría lanzar una acción de interfaz desde un botonTooltip para validar y actualizar una serie de campos y me gustaría saber si la función actualizaCampos me resolvería mi problema y de qué manera se utiliza.

 

Efectivamente, con esa función te valdría. Te pongo un ejemplo de una ventana que estamos desarrollando que tiene la misma funcionalidad: En la tpl:
{CWBotonTooltip id="calcula" iconCSS="glyphicon glyphicon-euro" titulo="Calcular" funcion="actualizaCampos" actuaSobre="ficha"}
En la clase manejadora:
$this->addTriggerEvent('calcula', 'calcularValores');
...

public function calcularValores($objDatos) {
....
}

Pregunta 5: Problemas con los botones al migrar aplicaciones a la versión 4.2.X

Acabo de probar una nueva aplicación directamente sobre la 4.2.9 y me ocurre que al utilizar un patrón simple con FIL-EDI, los botones para ventanas de selección y/o acciones de interfaz, al crear un nuevo registro en el panel ficha aparecen desactivados (y lógicamente no funcionan). El resto de controles (CWCampoTexto) me permiten la entrada y están activados. Si modifico un registro existente ya no ocurre y me permite utilizar toda la funcionalidad de los mismos sin problema.

Los mismos ejemplos (ventana de selección y acción de interfaz) sobre un patrón simple FIL-LIS-EDI no dan ningún problema en este sentido, ambos creados mediante Genaro.

No estoy utilizando los glyphicon, por si esto tuviera algo que ver.

 

Uno de los pasos para poder utilizar la versión 4.2.x es cambiar los botones a glyphicon. Concretamente deberías cambiar en las tpl lo siguiente:

• En el plugin CWBarra

{CWBarra añadir... iconOut="glyphicon glyphicon-log-out" iconHome="glyphicon glyphicon-home" iconInfo="glyphicon glyphicon-info-sign"}

• Los botones (CWBoton y/o CWBotonTooltip) básicos son los siguientes:

imagen="01" --> iconCSS="glyphicon glyphicon-plus"

imagen="02" --> iconCSS="glyphicon glyphicon-edit"

imagen="03" --> iconCSS="glyphicon glyphicon-minus"

imagen="04" --> iconCSS="glyphicon glyphicon-refresh"

imagen="13" --> iconCSS="glyphicon glyphicon-new-window"

imagen="50" --> iconCSS="glyphicon glyphicon-search"

imagen="41" --> iconCSS="glyphicon glyphicon-ok"

imagen="42" --> iconCSS="glyphicon glyphicon-remove"

• En el CWPaginador añadirle el parámetro iconCSS="true"

{CWPaginador enlacesVisibles="3" iconCSS="true"}

Si tienes necesidad de algún otro botón más específico puedes encontrar los glyphicons en la siguiente página: http://getbootstrap.com/components/

Pregunta 6: ¿Cómo puedo cambiar el aspecto del contenido de los componentes?

Queremos poner en negrita de una forma rápida mediante css el contenido de las cajas de texto, listas desplegables, textareas, etc ¿Alguien lo ha probado?
Las cajas de texto con poner en el fichero aplicación.css
input[type="text"] {font-weight:bold;}
ha funcionado, pero el resto de elementos no. ¿Alguna idea?

 

Si quieres que todos los campos pasen a tener la letra en negrita, modifica en el fichero aplicacion.css el estilo .text que ahora tiene font-weight: normal; pasando a ser

font-weight: bold;

Pregunta 7: Problema al cambiar aplicación de entorno

Tenemos una aplicación que al cambiarla de entorno dejan de funcionar ciertas acciones de interfaz y acciones particulares ¿Por qué puede ser?

 

Una de las primeras comprobaciones que tienes que realizar al respecto es ver el estado de las variables de configuración display_errors y error_reporting. Puede que en el entorno donde no funciona esté activado el display_errors y/o el error_reporting sea diferente. Algún warning esté impidiendo que se genere la página con normalidad.