Archivo para la categoría 'Uncategorized'

AbanQ: Integrando con JasperServer / JasperReports (II)

Bien, la idea es usar una librería C++ para interaccionar con webservices. Para ello, escogí el toolkit gSOAP. Librería en software libre que permite crear aplicaciones tanto clientes (consumidores) como servidores de webservices.

Nosotros vamos a hacer un uso muy parcial de la misma, ya que no vamos a instalar ningún servidor ni nada por el estilo, y sólo vamos a crear un consumidor. No me voy a meter en detalles con gSOAP (ya que se me escapa de los artículos) y sólo comentaré aquellos aspectos que nos interesan para integrar Webservices.

Lo primero, es obtener el WSDL de JasperServer. Para ello, y desde una instalación del mismo, se puede obtener sin más que abrir un navegador y solicitar http://servidor:puerto_tomcat/jasperserver/services/repository?wsdl

Bien. gSOAP proporciona dos ejecutables wsdl2h y soapcpp2 para generar los “proxys”, esto es, código C++ que encapsula el acceso por webservices. Los ejecutamos tal que así: (INCLUDEGSOAP es una variable que apunta al directorio de includes de gsoap

Read more…



Manifiesto en defensa de los derechos fundamentales en Internet

Claro ejemplo de un legislador que quiere legislar sin saber qué legisla… Especialmente, cuando parte del legislador es parte interesada en la misma. Me sumo al clamor.

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, muchos periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.


Un amigo

Mi amigo, Emilio Márquez, acaba de dar esta noticia luchando con el linfoma. Emilio es amigo mío desde hace ya más de 20 años… en su época nos conectábamos a las BBS, o bien, nos pasábamos juegos (increíble The Day of the Tentacle), todo ello mientras estábamos en el instituto, entre rezo y “Salve Don Bosco Santo” al… Ha habido época en las que hemos mantenido el contacto, y otras en las que menos. Pero eso no deja de ser una anécdota, porque lo considero un amigo.

Emilio, para cualquier cosa que necesites, ya sabes dónde estoy.

Un abrazo.



AbanQ: Añadiendo una nueva columna de ordenación en el FLDataTable

El trabajo con sistemas ERP, y especialmente con AbanQ siempre se basan en la navegación por listados de datos (o grids de datos). No estoy muy seguro de que realmente ese sea el sistema más usable o adecuado, pero al menos es muy popular.

En mi afán de tratar de hacer la herramienta aún más usable, echaba en falta una segunda columna de ordenación. Si mi empresa factura todo a través de AbanQ, el número de datos en esa rejilla es grande. Puede filtrarse utilizando el campo de filtro directo que AbanQ provee, pero ese campo de filtro también limita la ordenación de los datos filtrados que se presentan. Tener una segunda columna, como aparece en la imágen, puede ayudar aún más a localizar datos rápidamente.
Doble columna de ordenacion

Bien, veamos cómo hacerlo.

Como siempre, tocaremos un poquito de código de AbanQ… y de Qt 3.3.

Read more…



AbanQ: Ampliando la funcionalidad de los optionslist

Una de las ayudas que tiene AbanQ a la hora de construir formularios que presentan registros asociados, es sin duda la posibilidad de definir OptionsList. Para una columna de base de datos, podemos definir un conjunto de posibles valores que se almacenarán en la misma, utilizando el tag optionslist dentro de la definición del campo, en el .mtd de la tabla correspondiente. AbanQ, automáticamente, creará un combobox en la vista (el formulario) para que el usuario sólo pueda escoger uno de esos valores.

Pero esta solución, aunque muy buena, no es óptima. Si la columna es un campo de tipo varchar (o string, como se le llama en AbanQ), el optionslist, guarda siempre en esa columna la cadena entera. Supongamos, por ejemplo, una columna “tipo_articulo”  y un options list

<optionslist>Articulo prefabricado, Materia prima, Producto intermedio, Producto terminado</optionslist>

El detalle, es que esas cadenas se almacenan constantemente en la columna de la base de datos. Eso no es mayor problema si queremos indexar sobre esa columna, por ejemplo… Quizás es más interesante, el poder guardar en lugar de esos valores, otros, según la siguiente relación

<optionslist>Articulo prefabricado, Materia prima, Producto intermedio, Producto terminado</optionslist>
<optionsvalues>1,2,3,4</optionsvalues>

De esta forma, cuando el usuario escoga en el combo box “Artículo prefabricado” en la columna de la base de datos, se guardará un 1.

Read more…



Perdón a todos…

Perdonadme… Muchos meses de abandono del blog. Los motivos han sido personales y de toda índole. Algunos para bien, otros para mal. En cualquier caso, el blog ha sido el perjudicado.

Propósito de enmienda: Al menos una entrada semanal…

Saludos




Puede seguir las respuesta a esta entrada a través del feed RSS 2.0 Puede dejar una respuesta, o un trackback desde su propio sitio.