Comunidad SIU-Toba - Resolución de dudas y problemas al 20110520

Embed Size (px)

Citation preview

COMUNIDAD SIU-TOBA RESOLUCION DE DUDAS Y PROBLEMAS

Este manual solo intenta ser una recopilacin de lo obtenido como respuesta en la Comunidad SIU-Toba. Las consultas realizas son de muchos de los desarrolladores que trabajamos sobre la herramienta. Las respuestas son de unos pocos a los que le debemos su tiempo y esfuerzo.Sin duda estar sujeto a revisin, y las mismas sern bienvenidas! La fecha de resolucin de los problemas se ha puesto en todos los casos para referenciar la posible versin en curso y quiz indicar que dichar manera de resolucin o problema presentado, ya puede haber sido resuelto de esa o de otra forma.

TABLA DE CONTENIDOSADMINISTRACIN DE PROYECTOS......................................................................................................................5 SINCRONIZACIN DE DISTINTOS PUESTOS DE TRABAJO....................................................................................................................5 ELIMINAR PROYECTO.................................................................................................................................................................5 RENOMBRAR PROYECTO.............................................................................................................................................................5 COMO CLONAR UN PROYECTO.....................................................................................................................................................6 FORMATEO....................................................................................................................................................................7 MAYSCULAS/MINSCULAS EN EFS..............................................................................................................................................7 MAYSCULAS EN FORMA GLOBAL.................................................................................................................................................7 MINSCULAS PARA UN EF EN PARTICULAR.....................................................................................................................................7 ANCHO DE UNA ETIQUETA EN PARTICULAR...................................................................................................................................7 VIA CSS.................................................................................................................................................................................7 REDEFINIENDO EL LAYOUT..........................................................................................................................................................8 EF......................................................................................................................................................................................9 VALIDACIN DE VALORES INGRESADOS EN JS...............................................................................................................................9 CAMBIAR DE LA UNIDAD DINAMICAMENTE EN UN EF_EDITABLE_NUMERO.........................................................................................9 ACCEDER A LA DESCRIPCIN SELECCIONADA DE UN COMBO..........................................................................................................10 CAMBIAR LA ETIQUETA DE UN EF..............................................................................................................................................10 CAMBIAR ESTILO DE EFS SOLO LECTURA....................................................................................................................................11 EI_FORMULARIO.......................................................................................................................................................12 DETECTAR TIPO DE EF ............................................................................................................................................................12 LIMITAR FILAS EN ML...........................................................................................................................................................12 CONFIGURAR FILAS DE UN FORMULARIO_ML..............................................................................................................................13 COLAPSAR/DESCOLAPSAR FORMULARIOS CON JS........................................................................................................................13 CAMBIAR IMAGEN DE EVENTO DE FILA DE EN FORMULARIO_ML....................................................................................................14 EI_FILTRO....................................................................................................................................................................15 FIJAR LA CONDICIN DE UN ELEMENTO DE UN FILTRO..................................................................................................................15 EI_CUADRO..................................................................................................................................................................16 FORMATEAR/SUMARIZAR COLUMNA EN CUADROS.......................................................................................................................16 TIEMPOS (HORAS)....................................................................................................................................................................16 DISTINTAS MONEDAS................................................................................................................................................................16 COLAPSAR CORTES DE CONTROL POR CDIGO.............................................................................................................................17 PROBLEMA.............................................................................................................................................................................17 SOLUCIN...............................................................................................................................................................................18 SANEAMIENTO DE CAMPO CON HTML EN CUADRO........................................................................................................................18

EVENTOS Y VNCULOS.............................................................................................................................................19 COMO DISPARAR EVENTO DE UN CI CONTROLADOR DESDE UN CI INTERNO....................................................................................19 PASAR PARMETROS A UN POP-UP / VNCULOS EN GENERAL..........................................................................................................19 MANIPULACIN DE DATOS....................................................................................................................................21 INCORPORAR IMAGEN COMO DATO BLOB...................................................................................................................................21 PLANTEO................................................................................................................................................................................21 SOLUCIN...............................................................................................................................................................................21 CDIGO.................................................................................................................................................................................21 PDFS....................................................................................................................................................................................22 CHAR O VARCHAR.................................................................................................................................................................22 PERFILES DE DATOS.................................................................................................................................................................23 PROBLEMA.............................................................................................................................................................................23 SOLUCIN...............................................................................................................................................................................23 CN.......................................................................................................................................................................................24 COMO SABER SI UNA CONSULTA EST CARGADA AL INGRESAR A UN FORMULARIO........................................................................25 VARIAS BD - UN SOLO PROYECTO..........................................................................................................................................25 TRANSACCIONAR MODIFICACIONES SIMULTNEAS DE N DATOS_TABLAS.........................................................................................26 EXPORTACIN............................................................................................................................................................28 ARMAR PDF CON ENCABEZADO Y PIE DE PGINA....................................................................................................................28 ARMAR ENCABEZADOS DINMICOS EN PDF...............................................................................................................................28 ARCHIVOS....................................................................................................................................................................30 DESCARGAR ARCHIVOS............................................................................................................................................................30 IMPORTAR ARCHIVOS DE TEXTO................................................................................................................................................30 SKINS ............................................................................................................................................................................33 DEFINIR EL SKIN A UTILIZAR....................................................................................................................................................33 EXTENSIN DE UN SKIN EXISTENTE ...........................................................................................................................................33 CREACIN DE UN SKIN PROPIO DEL PROYECTO............................................................................................................................33 TOBA.CSS................................................................................................................................................................................33 IMGENES..............................................................................................................................................................................34 CHARTDIRECTOR......................................................................................................................................................35 GRFICAS CON CHARTDIRECTOR MOSTRADAS EN UN EF_FIJO......................................................................................................35 GENERAL......................................................................................................................................................................36 FIJAR LA BARRA DE MEN........................................................................................................................................................36 SALTO DE LNEA EN ARCHIVOS DE TEXTO...................................................................................................................................36

ORDENAR ARRAY SOBRE LOS DATOS DE UNA COLUMNA................................................................................................................36 ACCEDER AL SISTEMA DE USUARIOS DESDE MI PROYECTO.............................................................................................................36 CARTEL DE ESPERA.................................................................................................................................................................37 FUNCTION`S CYCLOMATIC COMPLEXITY (N) EXCEEDS ALLOWED MAXIMUM.....................................................................................37 PHP.................................................................................................................................................................................38 FATAL ERROR: ALLOWED MEMORY SIZE OF...............................................................................................................................38 PHP 5.3.0............................................................................................................................................................................38

Administracin de proyectosSincronizacin de distintos puestos de trabajo23/11/2009

En el equipo que origina el cambio hacer (N de desarrollado X): toba proyecto exportar -p {proyecto} cometer los cambios en svn En el equipo destino (N de desarrollador X): actualizar a travs del svn toba proyecto regenerar -p {proyecto} Lo ideal sera realizar este proceso antes de modificar algo. Es decir, siempre al inicio de la sesin de trabajo. Caso contrario, convendra como paso inicial, para preservar los cambios realizados en el equipo destino ejecutar: toba proyecto exportar p {proyecto}

Eliminar proyecto24/11/2009

toba proyecto eliminar -p proyecto -i instancia

Vale aclarar que este comando borra el proyecto de la base de datos de toba, no as la carpeta dentro de proyectos que debe ser borrada manualmente.

Renombrar proyecto03/08/2010

exportar el proyecto AAAA copiar la carpeta AAAA como BBBB hacer un busqueda reemplazando en todos los php y sql de la carpeta metadados y php del proyecto BBBB, toda aparicin de la cadena AAAA por BBBB (en mi caso utilic la aplicacin grep). cargar el proyecto BBBB y manualmente tuve que hacer algunos ajustes: en toba.conf modifiqu el alias para el nuevo proyecto ya que no se pblico automticamente (tampoco funcion haciendo toba proyecto publicar)... en instalacion/instancia.ini, renombre tambin los accesos al otro proyecto en bases.ini, renombr tambin el nombre de la fuente (ya que al llamarse igual que el proyecto, fue renombrada, y prefer seguir esa lnea, en lugar de renombrarla en el proyecto). dentro del proyecto tena un datos tabla apuntando a una tabla con el mismo nombre del proyecto original, que fue renombrada automticamente.

y finalmente tuve algn problema con los perfiles ya que la operacin de inicio qued sin accesos permitidos, excepto por el administrador.

Como clonar un proyecto15/30/2010

Actualmente no existe tal comando, se me ocurre la siguiente forma 'artesanal' de hacerlo. Por ejemplo clonar el proyecto toba_referencia a referencia_mio Exportar el proyecto. Copiar recursivamente la carpeta del proyecto. Buscar y reemplazar todas las ocurrencias de toba_referencia por referencia_mio, el id del nuevo proyecto puede tener hasta 15 caracteres.*** Para cargar el nuevo proyecto en la instancia ejecutar

***

Tener en cuenta de no modificar los archivos dentro de las carpetas ocultas .svn.

FormateoMaysculas/minsculas en efsMaysculas en forma global17/11/2009

Realizarlo a travs del estilo global del sistema, modificando el toba.css del proyecto:.ef-input { text-transform: uppercase; }

Esto es solo visual, pero igualmente, antes de enviar las cadenas a la bdd, las estaba pasando a maysculas, as que sigo hacindolo.

Minsculas para un ef en particular26/11/2009

Tiene prioridad con respecto al css global del proyecto. El generar_layout debe incluir todos los ef utilizados. El ef en cuestin debe generarse previamente y luego ejecutar el style.class ci_paises_formulario extends toba_ei_formulario { function generar_layout() { $this->generar_html_ef('ef1'); ... $this->generar_html_ef('nombre'); $id_ef = '#'.$this->ef('nombre')->get_id_form(); echo " $id_ef.ef-input {text-transform: lowercase;} "; ... $this->generar_html_ef('efN'); } }

Ancho de una etiqueta en particular10/03/2010

Via CSS#cuerpo_js_form_1000175_form .ei-form-etiq { width: 300px; }

Este el ejemplo afecta a todos los efs de ese formulario en particular. En CSS existe una forma de apuntar a toda una clase (.algo, en este caso .ei-form-etiq), a un id particular (#id) o a 'hijos de'. Entonces la regla,'#cuerpo_js_form_1000175_form .ei-form-etiq'

se lee como: 'Los tag que tienen como clase a ei-form-etiq que se encuentran dentro de un tag que tiene como id a cuerpo_js_form_1000175_form' Como obtengo cuerpo_js_form_1000175_form? Mirando el cdigo fuente y buscando un tag con id que englobe a lo que quers modificar, usando el inspect de FireBug o similar. En este caso el tag en cuestin es el comienzo del cuerpo de ese formulario puntual, con lo que la regla solo afecta a los efs de ese formulario. Si en cambio se desea apuntar a un ef particular sera, teniendo en cuenta que el id vara segun el form/ef:#nodo_ef_form_1561_formularioarchivo .ei-form-etiq { .... }

Redefiniendo el layoutSi se redefine el layout se puede utilizar toba_ei_formulario::set_ancho_etiqueta(). Con este metodo se puede setear el ancho de la etiqueta justo antes de hacer la llamada a$this->generar_html_ef('ef_que_se_desea_modificar');

de esa forma solo afectarias a ese EF y no al resto.***

***

En la prctica, solo se pudo afectando al ef final. Si se realiza en el medio, todos los que siguen quedaban modificados.

efValidacin de valores ingresados en JS21/10/2010

Este cdigo de ejemplo verifica que solo haya un checkbox de nombre principal tildado entre todas las filas.{$this->objeto_js}.evt__validar__datos = function() { var contador = 0; var hay_varias_principales = false; for(var i in this.filas) { if (this.ef('principal').ir_a_fila(this.filas[i]).chequeado()) { contador++; } } hay_varias_principales = (contador > 1); if (hay_varias_principales) { notificacion.agregar('Solo puede existir un principal.... one ring to rule them all.... muhahahahahaha'); } return (! hay_varias_principales); }

Este control puede realizarse en PHP tambin, en el evt__fomulario_ml__modificacion.

Cambiar de la unidad dinamicamente en un ef_editable_numero23/02/2010

var nodomuestra = this.ef('cantidad_muestra').get_contenedor(); var nodoregistro = this.ef('valor_reg').get_contenedor(); if (navigator.appName.indexOf('Explorer') != -1) { var nodomuestra = nodomuestra.firstChild.lastChild; var nodoregistro = nodoregistro.firstChild.lastChild; } else { var nodomuestra = nodomuestra.firstChild.nextSibling.firstChild.nextSibling; var nodoregistro = nodoregistro.firstChild.nextSibling.firstChild.nextSibling; } nodomuestra.nodeValue = ' ' + datos['muestra']['unidad_medida']; nodoregistro.nodeValue = ' ' + datos['variable']['unidad_medida'];

Se puede cambiar la expresion del if, en basicos.js existen una serie de variables JS que indican de que browser se trata y que version (para el caso de versiones incompatibles entre si).

Acceder a la descripcin seleccionada de un combo17/03/2011

Un ejemplo: la idea es tomar la descripcin de la moneda y colocarlo como unidad del saldo.{$this->objeto_js}.evt__id_moneda__procesar = function(es_inicial) { if (!es_inicial) { var nodosaldo = this.ef('saldo').nodo().childNodes[3].childNodes[1].childNodes[1]; var nodomoneda = this.ef('id_moneda').input(); var indice = nodomoneda.selectedIndex; if (indice) { nodosaldo.textContent = ' ' + nodomoneda.options[indice].text; } else { nodosaldo.textContent = ''; } } }

nodomoneda es apunta al combo de monedas, de donde saco la descripcin de la moneda....nodomoneda.options[indice].text es la descripcin de la moneda... nodosaldo apunta a un ef_editable que al lado tiene un punto como unidad (esto se define en toba_editor) Otro ejemplo: la idea en este caso es que aparezca un ef_editable dependiendo del valor descripcion que venia en la seleccion de un combo.if (!es_inicial) { var nodoid_subdiscp = this.ef('id_subdiscp').input(); var indice = nodoid_subdiscp.selectedIndex; var valor=''; if (indice) { valor = nodoid_subdiscp.options[indice].text; } var resultado = valor.substring(0,3); if(resultado=='OTR'){ this.ef('otra_disciplina_aplicacion').mostrar(); }else{ this.ef('otra_disciplina_aplicacion').ocultar(); } }else{ this.ef('otra_disciplina_aplicacion').ocultar(); }

Cambiar la etiqueta de un ef13/05/2010 Hay alguna forma de modificar la etiqueta de un ef? El asunto parte de que segn el valor de un campo otro campo puede etiquetarse de forma distinta. Se va a necesitar obtener el elemento del formulario donde se encuentran tanto el ef como su etiqueta. Se debera obtener los datos del TAG HTML que contiene tanto la etiqueta como el

elemento que se busca y de ahi en mas navegar por el DOM y acceder al elemento correspondiente para cambiarle su contenido.var element = this.dep('form_instrumento').ef('ISIN').nodo(); ... element.childNodes[1].innerHTML = 'Denominacin'; ... element.childNodes[1].innerHTML = 'Cdigo ISIN';

Cambiar estilo de efs solo lectura16/07/2010

Se puede definir en el toba.css del proyecto algo como lo siguiente:input[disabled], input[readonly], select[disabled], select[readonly], checkbox[disabled], checkbox[readonly], textarea[disabled], textarea[readonly] { background-color: #FF0000; border: #3532ff 1px solid; color: #000000; cursor: default; }

ei_formularioDetectar tipo de ef13/11/2009

Otra posiblidad que tens es aprovecharte de que el dato del tipo ya se conoce estticamente en php, probablemente esta sea la solucin mas robusta aunque no se si se entiende la mezcla php/javascriptclass form_x extends toba_ei_formulario { function extender_objeto_js() { echo "{$this->objeto_js}.ini = function () {\n"; foreach ($this->get_efs_activos() as $id_ef) { if (get_class($this->ef($id_ef)) == 'toba_ef_editable') { echo "alert('$id_ef es un editable');\n"; } } echo "}"; } }

Limitar filas en ML22/01/2010