Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Mensajes - alumno66

Páginas: [1] 2 3 ... 15
1
Toba - Desarrollo / Problema con evento multiple en cuadro
« : noviembre 22, 2018, 01:02:55 pm »
Tengo un evento múltiple por fila en un cuadro.
Dicho cuadro utiliza paginación.
Problema: Cuándo cambia de página no atrapa el evento donde viaja el array con las filas seleccionadas.
Pregunta: Tiene arreglo o hay que usar scroll??

Saludos a todos.

2
Toba - Desarrollo / Re:Problema con exportación a excel
« : enero 25, 2018, 08:21:58 am »
Estimado Richard, disculpá la demora en responder pero me atosigaron con otro tema.

Te informo que resolví el problema y no es un bug de Toba sino más bien un bache conceptual mio.
Me explayo sobre la solución por si algún usuario programador de nivel inicial tiene el mismo problema, se  le allane el camino.

La operación popup en cuestión solo tiene un cuadro exportable a excel.
Dicha operación es invocada de desde diferentes links los cuales envían parámetros.
El "where" para la consulta que crea el recordset para el cuadro se obtiene a partir de los parámetros que la operación recibe.

Hasta ahí, todo funcionaba bien.

Mi error conceptual estaba en pensar que la exportación a excel se hacía a partir de los datos del cuadro, cuando en realidad el objeto vuelve a ejecutar la configuración del cuadro y manda el resultado a la salida excel en lugar de al HTML.
Es allí donde los parámetros ya no existen y, en consecuencia, el php que escribí evita consultar la base de datos.

Lo resolví con variables del tipo $s__xxxx donde almaceno el filtro y otras menudencias.

Esto de las variables de memoria lo usamos siempre que el cuadro tiene un objeto filtro que cambia las condiciones, como en este caso no era necesario refrescar el HTML, lo hice con variables normales. Fue un bache sobre la lógica del ei_cuadro.

Gracias Richard por la atención , un abrazo y hasta cualquier momento.

3
Toba - Desarrollo / [SOLUCIONADO]Problema con exportación a excel
« : enero 23, 2018, 11:39:22 am »
Buen día.
Tengo un problema con la exportación a excel y no comprendo el por qué.
Cualquier cuadro que se genera desde una operación normal, se exporta sin problemas.
El problema se da en un cuadro generado en una página popup a través de un link.
Genera el archivo excel, me pone un título e informa que no hay datos cargados.

4
Toba - Desarrollo / Re:Ocultar columnas de un cuadro
« : mayo 30, 2017, 09:17:47 am »
Eso no se puede hacer.
Podés ocultar columnas en un cuadro pero eso afecta a todo el cuadro.
No es posible ocultar distintas columnas según datos del registro. Es más, no podrías decir que es un cuadro.
Si una columna debe verse para al menos un registro, debe estar presente en todo el cuadro. A lo sumo, podrías blanquear el valor para que no lo muestre.
O haces dos cuadros, uno para cada tipo de persona o inventar algún tipo de artificio pero sin  ocupar el ei_cuadro.

5
Toba - Desarrollo / Re:Restricciones funcionales
« : mayo 29, 2017, 02:51:43 pm »
Si. Con el asunto de las etiquetas, tal como está, sucede que las pantallas se estiran mucho a lo ancho y no quedan visualmente cómodas.
Suelo ponerles long. de etiqueta 0 y sin etiqueta, para que me ocupe poco o nada de espacio. Con la nueva versión del toba que tengo, tuve que modificar ese detalle y ponerle una  long. de etiqueta mínima de 15 px porque el box editable tapaba el asterisco de obligatorio.
Normalmente no les pongo etiquetas en el objeto del toba y lo manejo con el layout aprovechando el efecto de que al poner texto y definición de ef en la celda de una tabla html, pone el ef_editable debajo del texto y queda algo así: (Imágenes adjuntas).

Hace años les había sugerido poder especificar el ancho de las etiquetas, pero no prosperó.
De todos modos, es posible hacerlo extendiendo el componente y modificando el código.
En mi caso, en uno de los sistemas lo hice así:
Código: [Seleccionar]
class editar_layout_propio extends toba_ei_formulario
{

function generar_layout_template()
{
$ef_etiq_corta = array('ldepsecr','ldepsubs','ldepersu','ldepdire','ldepdpto','ldepdivi');
//Parseo del template
$pattern = '/\[ef([\s\w+=\w+]+)\]/i';
if (preg_match_all($pattern, $this->_info_formulario['template'], $resultado)) {
$salida = $this->_info_formulario['template'];
for ($i=0; $i < count($resultado[0]); $i++) {
$original = $resultado[0][$i];
$atributos = array();
foreach (explode(' ',trim($resultado[1][$i])) as $atributo) {
$partes = explode('=', $atributo);
$atributos[$partes[0]] = $partes[1];
}
if (! isset($atributos['id'])) {
throw new toba_error_def($this->get_txt()."Tag [ef] incorrecto, falta atributo id");
}
               
if (isset($atributos['etiqueta_mostrar']) && $atributos['etiqueta_mostrar'] == 0) {
$etiqueta_mostrar = false;
}
               
if (isset($atributos['etiqueta_ancho'])) {
$etiqueta_ancho = $atributos['etiqueta_ancho'];
}

                $etiqueta_mostrar = true;
if(in_array($atributos['id'],$ef_etiq_corta)){;
                    $etiqueta_mostrar = false;
}

$html = $this->get_html_ef($atributos['id'], $etiqueta_ancho, $etiqueta_mostrar);
               
$salida = str_replace($original, $html, $salida);
}
echo $salida;
} else {
throw new toba_error_def($this->get_txt()."Template incorrecto");
}
}
}
Bueno, ya te di mucha lata y debes estar ocupado.
Saludos.

6
Toba - Desarrollo / Re:Ocultar columnas de un cuadro
« : mayo 29, 2017, 09:35:09 am »
En el evento de configuración del cuadro podés poner algo así (yo lo uso)

$cuadro->eliminar_columnas(array('documento'));

Ojo, "documento" es el id de la columna, no la etiqueta.

Saludos

7
Toba - Desarrollo / Re:acceso a campos de formularios
« : mayo 24, 2017, 12:11:12 pm »
Si estás parado en el evento guardar, entonces no sería necesario que modifiques los ef  del formulario ya que a esa altura lo que te importa es lo que figura en el datos_tabla.
Dicho objeto posee métodos que te permiten ubicar el cursor en el registro que necesites modificar y cambiar el valor de una columna.
La verdad es que la información que brindas es muy escasa como para estar seguro de cual sería el método  correcto.
No se si estás usando un datos_tabla, ni si este está dentro de un datos_relación,  ni si el mismo tiene un solo registro o varios, ni si necesitas modificar una sola columna o varias.

En el caso trivial de que tuvieras un datos tabla  con un solo registro, para que los cambios impacten en la tabla, antes de sincronizar deberías usar  alguno de los siguientes métodos:

modificar_fila( mixed $id, array $fila, [array $nuevos_padres = null]  )
Modifica los valores de una fila de la tabla en memoria Solo se modifican los valores de las columnas enviadas y que realmente cambien el valor de la fila.
Parámetros:
mixed     $id:    Id. interno de la fila a modificar
array     $fila:    Contenido de la fila, en formato columna=>valor, puede ser incompleto
array     $nuevos_padres:    

o bien
set_fila_columna_valor( mixed $id, string $columna, mixed $valor  )
Cambia el valor de una columna de una fila especifica
Parámetros:
mixed     $id:    Id. interno de la fila de la tabla en memoria
string     $columna:    Columna o campo de la fila
mixed     $valor:    Nuevo valor

Te aconsejo estudiar la API php a los efectos de ver cual se adapta mejor a tus necesidades.. Podés llegar a lso métodos del DT  accediendo a través del menú superior con la opción "componentes" y luego en el menú que está a la izquierda de la pantalla busca "Datos Tabla" dentro de los objetos de persistencia.

Si no estás usando Datos Tabla y estás haciendo los inserts  sin utilizar los métodos de persistencia, habría que ver cómo definiste tu evento guardar y dónde.
En el caso de que no hayas arrastrado los datos y estos estén solo en el form y este objeto esté visible, podrías alcanzar la información con:

$this->dep('nombre_del_form')->ef('nombre_del_ef')->get_estado();


Saludos

8
Toba - Desarrollo / Re:acceso a campos de formularios
« : mayo 23, 2017, 09:48:04 am »
Bueno, la manipulación de un campo para modificar su contenido depende de donde estás parado.
En el caso de que te encuentres en el método de configuración del formulario, que recibe como parámetro el objeto ei_formulario con el nombre $form, el método a utilizar sería el siguiente:
$form->ef('mi_identificador_de_ef')->set_estado(valor_deseado);

Si estás en la extensión Js del formulario sería:
this.ef('mi_id_ef').set_estado(valor_deseado);

Esto sería para un ef editable común. Los ef_popup tienen un tratamiento levemente diferente.

Todos los métodos disponibles para manipulación de efs, tanto los propios como los heredados de cada tipo de ef, los vas a encontrar en las respectivas APIs de Toba, tanto php cmo Js.

Espero haberte orientado.
Saludos.

9
Toba - Desarrollo / Re:Restricciones funcionales
« : mayo 19, 2017, 10:04:20 am »
Hola Richard.
Sí, el problema es que como nosotros, la mayoría de las veces no le ponemos etiqueta dado que le hacemos layout, se presenta el problema.
Bueno. Veremos como hacemos.
Te adjunto imagen para que veas como lo visualizamos.
Abrazo.

10
Toba - Desarrollo / [SOLUCIONADO]Restricciones funcionales
« : abril 27, 2017, 10:28:05 am »
Estimados creadores del TOBA.
He observado en el Toba Usuarios, en lo que atañe a las Restricciones Funcionales, que cuando se despliega el árbol a nivel campo para evitar la visualización o edición mediante esta metodología, la lista de campos son íconos sin ninguna referencia a su id. Esto vuelve muy complicada esta tarea.
Espero que mi comentario sea tomado como una crítica constructiva ya que no es mi intención desestimar el trabajo de nadie y menos uno tan complejo como la creación y desarrollo del Toba.
Un cordial saludo.

11
Toba - Desarrollo / Re:Problemas con imagen blob.
« : febrero 24, 2017, 02:07:15 pm »
Esta es la porción de código que funciona el Linux pero fallutea en window. Antes, hace tiempo, funcionaba en ambos.
Código: [Seleccionar]
$fp_imagen = $this->dep('bienes')->get_blob('b01foto');
            if (isset($fp_imagen)){
                #-- Se necesita el path fisico y la url de una archivo temporal que va a contener la imagen
                $temp_nombre = md5(uniqid(time()));
                $temp_archivo = toba::proyecto()->get_www_temp($temp_nombre);
     
                #-- Se pasa el contenido al archivo temporal
                $temp_fp = fopen($temp_archivo['path'], 'w');
                stream_copy_to_stream($fp_imagen, $temp_fp);
                fclose($temp_fp);
                $tamano = round(filesize($temp_archivo['path']) / 1024);
               
                #-- Se muestra la imagen temporal
                $form->ef('imagen')->set_estado("<img src='{$temp_archivo['url']}' >");
                $form->ef('b01foto')->set_estado('Tamaño: '.$tamano. ' KB');   
          }

12
Toba - Desarrollo / Re:Problemas con imagen blob.
« : febrero 21, 2017, 10:12:54 am »
A ver:
Los datos bytea están en un servidor Linux.
Arranco el proyecto en mi local, como puede ser desde el Toba Editor, y al intentar acceder a la imagen genero un archivo en la carpeta Temp del proyecto.
Ese archivo no puedo abrirlo con el explorador, me muestra un montón de caracteres en lugar de la imagen.
Si paso este archivo al linux, hace exactamente lo mismo.
En cambio, si tomo un archivo (de los temporales) creado en el entorno linux por el mismo programa y lo paso a la pc windows, se ve perfectamente.

Es como si al generar el archivito Temp, desde el entorno windows, no lo hiciera bien, generando un archivo corrupto.

13
Toba - Desarrollo / Problemas con imagen blob.
« : febrero 16, 2017, 12:56:12 pm »
A ver si alguien me puede orientar.
Tengo un viejo sistema que genera campos tipo blob.
Resulta que el mismo programa me muestra las imágenes sin problemas en un servidor linux, pero no lo hace en mi local (W10). Las imágenes se levantan de la misma tabla.
Parece ser que el archivo temporal no está bien generado, pero no se por qué.

Gracias por su atención

14
Ok, gracias Richard, voy a aprovechar tus ideas y consejos para optimizar el programa.
Feliz 2017 y un sincero abrazo.

15
Toba - Desarrollo / Re:Problemas para identificar un vínculo.
« : diciembre 28, 2016, 08:20:50 am »
Bueno:  Confirmo que no encuentro forma de hacerlo usando el vinculador, por lo tanto opté por solucionarlo usando DOM.
En primer lugar, al crear el icono utilería en la configuración del formulario en el php agrego el parámetro pero con un valor nulo. Eso es para que el texto de la función onclick sea siempre igual en lo referente al parámetro quedeseo modificar y de ese modo poder reemplazarlo sin complicaciones.

Código: [Seleccionar]
#-- pongo el ícono para el link de Ubicación geográfica
$imagen = 'img/ubicacion.png';
$mensaje = "Ver la Ubicación Geográfica";
$id = "'ubi_geo'";
        $mi_icono = new mi_icono();
       
        $enlace = toba::vinculador()->get_url('organigrama', "250000276", array('punto_geom'=>null),array('celda_memoria'=>'celda_ubi_geo'));
                                               
       
$mi_icono->set_parametros($imagen,$mensaje,$id,$enlace);
$form->ef('c01ubi_geo_id')->agregar_icono_utileria($mi_icono);

Luego, en la extensión de la clase del formulario agrego JS  para completar o reemplazar el parámetro (punto_geom) cada vez que cambie el valor de un campo dado.

Código: [Seleccionar]
function extender_objeto_js()
{
echo "
       
        if(as == null){
            var as = document.getElementById('ubi_geo').onclick.toString();
            as = as.replace('function onclick(event)','');
            as = as.replace('{','');
            as = as.replace('}','');
        }
       
//---- Procesamiento de EFs --------------------------------

{$this->objeto_js}.evt__c01ubi_geo_id__procesar = function(es_inicial)
{
      var id_ubi = this.ef('c01ubi_geo_id').get_estado();
         
      if(id_ubi != ''){
          this.controlador.ajax('get_datos_ubi_punto', id_ubi, this, this.datos_ubi_punto);
      }
              else{
                document.getElementById('ubi_geo').style.visibility='hidden';
              }
}
       
        //---- Agrego valor al parametro punto_geom
{$this->objeto_js}.datos_ubi_punto = function(punto_geom)
{
     if(punto_geom == ''){
          document.getElementById('ubi_geo').style.visibility='hidden';
     }
             else{
                document.getElementById('ubi_geo').style.visibility='visible';
                ff = as.replace('punto_geom=', 'punto_geom='+punto_geom);
                document.getElementById('ubi_geo').onclick = function(){eval(ff);};
             }
}
       
        //------
       
";
}

Bueno. se que no es un código para alardear, pero, por ahí, a alguno le sirve.
Un cordial saludo a todos.

Páginas: [1] 2 3 ... 15