sep 10

Amanece, que no es poco

Posted in Sin categoría

Hay dias que mas valdria no haberse levantado …

Seguro que mas de una vez, os habeis sentido asi, ¿verdad?, pues no, hoy no es ese dia, hoy brilla el sol mas que nunca y las musas me acompañan en mi camino,

¿porque sera?

Creo que he visto la luz, y no se ¿si dirigirme hacia ella? o ¿esperar a que ella venga a mi?

En cualquiera de los casos, ya que tengo luz, la aprovechere y apagare las velas un tiempo …

PDF Download    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Amanece, que no es poco
ago 31

Informes en HTML

Posted in Sin categoría

Generar un informe en HTML es sencillo, pero a pesar de ello, vamos a detallar un poquito mas como hacerlo, y de este modo, conseguir nuestro proposito principal, que no es otro que poder imprimir un informe con datos obtenidos de varias tablas.

Para generar nuestro informe, vamos a crear un proceso que genera todo el codigo HTML, y debemos tener claro cual va a ser el origen de los datos, y para este ejemplo he decidido que podemos generar un informe con varios historicos de una misma tabla maestra. Por tanto, el origen de nuestro proceso sera de tipo ficha (Entidades) y queremos imprimir un informe de Albaranes y Facturas de una entidad. Debemos tener en cuenta que para este ejemplo, las tablas de Albaranes y Facturas son historicas de Entidades.

Y el proceso como sería:

Inicializamos una variable de texto HTML=””

Generamos el codigo Html inicial HTML=HTML + “<html><head> … </head><body>”

Cargamos plurales de Albaranes de la entidad

Iniciamos el bloque de Albaranes: HTML=HTML + “<table>”

Recorrer lista solo lectura

Seguimos generando el Html para cada uno de los registros del informe HTML=HTML + “<tr><td>#CAMPO1</td><td>#CAMPO2</td><td>#CAMPO3</td><td>#CAMPO4</td></tr>”

Y finalizamos uno de los bloques del informe: HTML=HTML + “</table>”

Cargamos plurales de Facturas de la entidad

Iniciamos el bloque de Facturas: HTML=HTML + “<table>”

Recorrer lista solo lectura

Seguimos generando el Html para cada uno de los registros del informe HTML=HTML + “<tr><td>#CAMPO1</td><td>#CAMPO2</td><td>#CAMPO3</td><td>#CAMPO4</td></tr>”

Y finalizamos el otro bloque del informe: HTML=HTML + “</table>”

Y finalizamos la generacion del codigo Html con HTML=HTML + “</body></html>”

Ahora, podriamos pensar que el proceso no es valido, si el informe que vamos a generar no esta relacionado con una ficha en concreto, pero nada mas lejos de la realidad.

Para solucionarlo, solo es necesario cambiar las sentencias “Cargar plurales” por las “Busquedas” correspondientes y estaria solucionado

PDF    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Informes en HTML
ago 31

Se acabo lo bueno

Posted in Sin categoría

Pues si, llega el final del verano (para lo que queda), y de nuevo a currar.

Despues de unas semanitas mas relajado, y en las que he desatendido un poquito más este blog, llega la hora de ponerse las pilas y volver a la carga.

Nos vemos en breve con algún artículo nuevo.

PDF Printer    Enviar artculo en formato PDF   
comments: 1 »
feb 7

Entrevista de Geproin

Posted in Sin categoría

En primer lugar, deseo felicitar a F.J.Vila por su blog Geproin y la buena iniciativa que a tenido entrevistando a otras empresas dedicadas principalmente a la programación con Velneo y en especial, con la nueva versión del producto V7.

Deseo que tengas mucha suerte y sigas publicando buenos articulos en tu blog.

Aqui os dejo el enlace al artículo original: Entrevista del viernes a ASC

y aqui una copia de la entrevista que nos realizó:

* ¿Como entraron en contacto con el mundo Velneo.?

Alla por el año 1997, estaba en pleno proceso de cambio de herramienta y vi un anuncio en una revista especializada y solicite una demo.

* ¿Sus aplicaciones están especializadas en algún sector en particular?

No, realizamos aplicaciones a medida para cualquier tipo de negocio

* ¿Han comenzado ya a desarrollar con V7?

Desarrollar en serio, no, con la versión actual no me atrevo a comercializar nada serio, serian demasiados problemas. Los clientes no soportan demasiado bien los experimentos, y con esta crisis no podemos arriesgarnos a perder clientes.

* ¿Cómo ve la curva de aprendizaje de la herramienta?

Para los usuarios de versiones anteriores, es relativamente mas fácil, pues la base de datos no cambia demasiado. Pero como todos los lenguajes, hay que practicar mucho, y solo con pruebas reales surgen problemas reales y es necesario ver como resolver cada uno de ellos.

* ¿Que es lo que destacaría de la plataforma?

La arquitectura de la herramienta y la integracion con la base de datos, el refactoring. En general, que mantiene la esencia de su predecesor pero mejorado en muchos aspectos.

* ¿Qué es lo que menos le gusta de la plataforma?

La gran cantidad de pequeños bugs que impiden realizar aplicaciones completamente funcionales.

* ¿Que echa en falta en la herramienta?

Mayor integracion web, y no precisamente: vWebClient Mayor información sobre el futuro de la herramienta

* ¿Ha cambiado la aparición de V7 su modelo de negocio?

No demasiado, aunque no descarto abordar otro tipo de clientes a los que tenemos actualmente. Pero eso el tiempo lo dirá, nuestro objetivo principal, es mantener los clientes actuales que son los que nos dan de comer.

* ¿A que target va a ir dirigido su estrategia con V7.?

A realizar aplicaciones de gestión basadas en web (PaaS y SaaS).

* Breve descripción de la/s herramienta/s desarrollada/s en V7

Estamos comenzando un desarrollo de E.R.P., pero a fuego lento, queremos que el resultado sea excelente en todos los aspectos. Tanto a nivel de analisis de la base de datos, como a nivel de interfaz

Create PDF    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Entrevista de Geproin
feb 3

La potencia sin control, no sirve de nada!

Posted in Sin categoría

Este era el eslogan de una conocida marca de neumaticos, y realmente es cierto.

Y ésto viene al hilo de que, en los últimos dias, he estado dedicando bastante tiempo a realizar pruebas con pequeños desarrollos en V7.

Y la mejor forma de probar, es con datos reales, porque solo asi surgen problemas reales que tanto detestan los clientes cuando están trabajando.

Y durante el transcurso de estas pruebas, V7 me ha sorprendido gratamente en muchos aspectos, y he podido comprobar la inmensa potencia que puede llegar a tener para realizar Interfaces de calidad (vease la Open Apps vCash de Overall) y el trabajo realizado por Jorge Hontoria en PaaSOS.

Pero para realizar trabajos con una presentación y calidad óptima, como en los ejemplos anteriores, hay que echarle valor y tirarse al ruedo, asi que he creado un formulario y le he incluido varias rejillas de datos, cada rejilla correspondiente a una tabla de datos diferente.

Para realizar este ejemplo, he seguido los pasos que voy a indicar ahora:

  1. Crear un formulario sin origen
  2. Incluir varios controles objeto, cada uno de ellos con un proceso que carga una lista de datos y presenta una rejilla para visualizarlos.
  3. He creado varios eventos en el formulario para ocultar los controles objeto anteriores, y mostrar solo uno y recalcularlo
  4. He creado una conexion de evento para que al iniciarse el formulario solo se muestre una de las rejillas, y se oculten todas las demas.
  5. Y he incluido varios botones en el formulario, cada uno de ellos, para ejecutar un evento, y asi activar y desactivar los controles objeto segun corresponda.

Y hasta aqui he de decir, que todo funciona de maravilla, los controles se ocultan y se visualizan cuando deben, y solo se ve una rejilla en cada momento, permaneciendo ocultas las demas.

En esta prueba he comprobado la verdadera potencia de los “Layauts” y sobre todo de las sentencias de Interfaz en los eventos. Como he dicho anteriormente, la potencia que podemos llegar a obtener es inmensa, y felicito por ello al equipo de Velneo.

Pero no iba a ser todo bueno, y como dice el titulo de este artículo, toda esa potencia debe ser controlada, para que realmente tenga utilidad. Voy a intentar explicarlo claramente,

Todo funcionaba a pedir de boca hasta que, realicé una importación de datos masiva, y generé datos en varias de las tablas que se mostraban en las rejillas del ejemplo anterior. Aproximadamente unos 150.000 registros en total repartidos por 3 de las tablas utilizadas.

Y aqui es donde empiezan los problemas, ya que al ejecutar el proyecto y pulsar el botón que muestra el formulario con las rejillas, vClient se queda aparentemete colgado durante casi 2 minutos. Demasiado tiempo para tan poca cantidad de registros, eso es “pecata minuta” para Velneo.

Como no estaba muy convencido del resultado (demasiado tiempo para trabarar con vServer en Local), empecé a modificar el proyecto a ver que tal se comportaba en diferentes condiciones y despues de muchos cambios y ejecuciones llegue a la siguiente conclusión:

Cuando se muestra el formulario, se recalculan automaticamente todos los objetos que contiene.

Y aunque no estoy seguro de como se ejecuta internamente, puede deberse a dos motivos:

  1. Todos los controles se recalculan antes de ejecutarse el evento de Inicializado del formulario.
  2. Si el evento de Inicializado del formulario se ejecuta en primer lugar, significa que los Controles objeto son recalculados en la ejecucion del formulario, a pesar de que han sido ocultados en el Inicializado.

Asi pues, toda esta potencia, no sirve de nada si no podemos controlar de alguna forma que objetos del formulario deben ser recalculados al iniciarse el mismo (Recuerdo que en la Conexion de evento: Inicializado, se ejecuta un evento que oculta todos los controles objetos menos uno)

En cualquier caso, creo que la solución a este problema, pasaría por poder controlar de alguna forma,(bien en el Evento de Inicializado del formulario o de cualquier otro modo) que un control oculto no sea recalculado, o indicar que controles deben recalcularse y cuales NO antes de mostrarse el formulario.

Este problema además nos puede costar dinero, ya que si trabajamos en la nube, desde dispositivos moviles, debo recordar que las tarifas de datos de las principales operadoras de telefonia móvil, se facturan por volumen de bytes.

Y aunque podría estar equivocado, lo cual me encantaría, si alguien conoce una solución a este problema, le estaré muy agradecido.

En caso de estar en lo cierto, ruego a Velneo que solucione este problema que afecta enormemente al rendimiento de las aplicaciones.

PDF Creator    Enviar artculo en formato PDF   
comments: 4 »
ene 25

¡Ser constante es bueno!

Posted in Sin categoría

Si, la constancia suele ser  buena en muchos de los aspectos de la vida, pero no es el tema de hoy.

Hoy vamos a tratar otro tema, el valor de la CONSTANTE, un objeto infravalorado por la mayoria de los desarrolladores y por que no dedirlo, por mi mismo hasta descubrir el poder de este objeto.

Muchas veces no vale con que te cuenten las cosas, las tiene que descubrir uno mismo para entender el valor que tienen, da igual, si has leido en un blog un artículo explicandote un objeto determinado, con el tiempo olvidarás el artículo y es en el momento en que necesitas el objeto en cuestión cuando te das cuenta del tiempo perdido haciendo las cosas de mala manera.

Y aqui es donde la CONSTANTE pasa por ser uno de esos objetos que te dejan indiferente, aunque no debería. Vamos a ver porqué:

Todos hemos tenido la necesidad, y ahora más de realizar un proyecto multiidioma, y como ahora nos lo ha solucionado Velneo con la herramienta vTranslator, pues nos conformamos y punto.

Pero alguién se ha preguntado en realidad, cuanto cuesta la traducción de una aplicación a otro idioma, ¿en dinero? mucho, pero sobre todo en tiempo, ¡más aún!.

ConstanteAún no lo has pillado, pues te lo explico, todos los menús que creamos para las interfaces de nuestras aplicaciones tienen siempre las mismas opciones repetidas, los mismos botones (Alta, Modificar, Borrar, Localizar, etc.), los mismos textos, mensajes al usuario. El traductor, debe localizar y traducir la misma palabra decenas de veces en cada proyecto.

TraduccionSuponte, por un momento que todo eso lo trasladamos a las Constantes, y utilizamos la constante como contenido inicial en los botones y otros objetos, en vez de escribir el texto en el idioma correspondiente.

A primera vista, esto no es una ventaja, ya que en vDevelop no podrás ver si lo estas haciendo correctamente, o no. Ni siquiera pulsando la tecla FIN para ver como quedaría el formulario en ejecución. Un pequeño inconveniente que al menos de momento no esta solucionado.

Pero tiene una gran importancia este trabajo, hemos creado algunos objetos más, que podriamos haber ahorrado, pero en el momento de definir las constantes, si hemos incluido varios Idiomas en el proyecto, ya podremos traducir los nombres en esos idiomas.

Contenido inicialCuando ejecutes el proyecto, podras cambiar el idioma, pero todos los objetos estarán traducidos correctamente, y como por arte de magia, no hemos necesitado vTranslator para esta operación y, lo mejor de todo, ya tenemos el 90% de la traducción del proyecto realizada.

Previsualizacion del formulario

Solo tendrás que revisar si olvidaste traducir algo, pero seguro que no será demasiado.

PDF Download    Enviar artculo en formato PDF   
comments: 1 »