AbanQ: Dando formato a los FLFieldDB numéricos.
Cuando uno trabaja con un ERP, y con AbanQ en particular, hecha de menos que el sistema formetee según la configuración las diferentes cifras con las que se trabaja. Veámoslo:
FLFieldDB sin formato aplicado
Vale, al menos a mí me pasa, si voy con prisas, si voy con bulla (¿os suena en el curro?), ¿Qué cifra pone ahí? ¿ trece mil o ciento treinta mil?. Veamos lo siguiente:
FLFieldDB visualizando la cifra con Locale.
Se ve un poco mejor, ¿no? Voy a explicaros cómo se programa este pequeño cambio en AbanQ.
Las modificaciones de AbanQ en la última versión del código fuente
InfoSial publicó el 16 de Marzo una nueva versión del código fuente de AbanQ. He actualizado los cambios que hice en el fuente de AbanQ según esa versión. Los archivos que debéis bajaros para compilar con esos nuevos fuentes son:
Como ya sabéis los cambios son:
- Posibilidad de presentar en los componentes FLTableDB el resultado de una consulta.
- Guarda automáticamente los tamaños de los formularios, y los recupera. El usuario por tanto, decide el tamaño de los formularios.
- Los formularios aparecen centrados.
Desde InfoSial me han comunicado su intención de incluir estos cambios en su nueva versión del motor de AbanQ, así que espero poder colaborar con ellos para incluir estos cambios (que principalmente son de usabilidad).
Calculando el coste hoja de un pliego offset…
Calcular el coste hoja de un pliego offset (por ejemplo, en 50x70 o 70x100) a partir del coste en €/Tonelada que te proporciona un proveedor de papel, es un proceso de reglas de tres consecutivas. Muchos impresores, tras años de experiencia se saben la fórmula de memoria y la aplican mecánicamente en su día a día.
Aquí os traigo un pequeño desarrollo, hecho en Qt4, software libre con licencia GPL para que lo utilicéis libremente. Todos los campos son editables y el cambio en un de ellos, implica recálculo en el resto. Os dejo también una captura de pantalla.
La descarga podéis hacerla desde aquí. Eah, a disfrutarlo.

Calculadora de costes de pliegos offset.
Corrección de bugs en las modificaciones de AbanQ
Os dejo por aquí el código fuente de la librería flbase modificada, corrigiendo bugs para conseguir la funcionalidad mostrada en anteriores posts. Había múltiples bugs (algunos debidos a mi desconocimiento del código de AbanQ y otros a efectos no contemplados). Creo que esta versión es bastante más robusta que la anterior. Permite además, efectos muy chulos, por ejemplo, modificar desde QSA la query de visualización de una FLTableDB por lo que puedes, en una misma ventana cargar datos de diferentes consultas según las diferentes opciones que el usuario seleccione.
A ver qué os parece...
Ejemplo práctico de la modificación: Mostrando más información en los Stocks de AbanQ
Quizás no quedó del todo clara la modificación que hice sobre AbanQ, y la mejor manera es un ejemplo práctico para mostrar qué se puede lograr.
Vamos a trabajar con el formulario "Regularización de stocks" del módulo de Almacén del Área de Facturación. Cuando entramos en este formulario, vemos lo siguiente.
Bien. Vamos a suponer que queremos introducir una regularización de Stocks de, por ejemplo, el artículo Aditivo de Mojado. Bien, en este ejemplo, tenemos Referencias "autoidentificables", con lo cual, no es complicado averiguar que CONSOFFADITMOJADO, se corresponde al artículo en cuestión... ¿De verdad no es complicado? Quizás para algunos usuarios sí, y para otros no. Veamos una solución con la modificación que realicé:
Mostrando el resultado de consultas en los FLFormDB de AbanQ (y II)
Conseguido! Creo que ya tengo una versión más o menos estable del ejecutable de AbanQ para Windows con las siguientes modificaciones:
- He eliminado la paleta que incluía InfoSial y a que a mí personalmente, no me gustaba estéticamente
- He corregido algunos problemas con el centrado de los formularios en pantalla. Los únicos que no se centran son las ventanas de Áreas. Estoy trabajando en un tratamiento especial para estos.
- He agregado la propiedad qryVisualizacion a los componentes FLTableDB que se incluyen en QtDesigner. Esto permite, como ya he explicado, mostrar en este tipo de componentes el resultado de una query SQL en lugar de una tabla. Esto es útil, si queremos ver el valor de columnas (o campos) de otras tablas relacionadas y que no se incluyen de manera duplicada en la tabla que editamos (política general de los módulos de AbanQ).
La instalacion Quick para Windows la tenéis aquí.
La instalación normal para Windows está aquí.
Los ficheros fuentes modificados están aquí.
Voy a explicar brevemente cómo utilizar la última característica que he añadido. Vamos a hablar de la tabla artículos. En la definición de articulos.mtd tenemos el codfamilia, y esto es lo máximo que podremos ver en el componente FLTableDB cuando pinchamos en Almacén->Artículos. ¿Y si quisiéramos ver a qué familia pertenece ese artículo? Pues o nos sabemos a qué corresponde el código de la familia (útil para expertos en ERP) o bien entramos a editar el artículo para ver la familia (lo que hace la mayoría).
Esta solución permite un paso intermedio y nos va a permitir visualizar en masterarticulos.ui no la tabla articulos, sino una query con el nombre de la familia.
Mostrando el resultado de consultas en los FLFormDB de AbanQ
Uno de los puntos que ya comenté en su día es la duplicidad de información en AbanQ que se produce en su modelo de datos. Pongo un ejemplo: Factura de proveedores.
Cuando creamos una factura de proveedores, según el formulario que muestro en la imagen, escogemos el Código de proveedor (Cod. Proveedor), y automáticamente el formulario muestra el nombre del proveedor y su CIF. Lo esperable es que en la tabla de facturas de proveedores (facturasprov) se guarde sólo el código de proveedor (codproveedor).
Pero no!!! En la tabla de facturas de proveedores, se guarda también el nombre del proveedor y su CIF. ¿Y si por ejemplo, hemos creado un proveedor y pasado un mes descubrimos que nos hemos equivocado en una letra en el nombre del proveedor? Deberíamos corregirlo en la definición del proveedor y en todas y cada una de las facturas del proveedor. Este tema lo traté en los foros oficiales de AbanQ en este hilo.
Guardando automáticamente los tamaños de los formularios en AbanQ
Como comentaba en un post anterior, hay determinados detalles que pueden marcar el éxito de una aplicación, y uno de ellos es la interfaz gráfica sin duda. En AbanQ uno de los puntos que he encontrado deficiente, ha sido el de guardar el tamaño de los formularios (o ventanas) de la aplicación según el gusto del usuario. La idea: se abre el formulario, y el usuario redimensiona la ventana para verla según su gusto. Cuando cierra ese formulario y vuelve a abrirlo espera el mismo tamaño, y no el antiguo, que puede resultarle incómodo.
Para redimensionar formularios, y guardar su tamaño, la librerías Qt son especialmente válidas (de hecho, el estándar en Qt es hacer formularios o ventanas (widgets) redimensionables).
Voy a explicar los cambios que habría que hacer en el código de AbanQ para conseguir esto: La idea es que guardaremos en el registro (en los "settings" que definen Qt, que es el registro de Windows en la versión de Windows o en archivos de configuración en el home del usuario en el caso Unix) el tamaño de la ventana cuando el usuario la cierra, y redimensionaremos la ventana al abrirla según el último tamaño guardado del usuario.
Modificaciones en AbanQ
Ha sido bastante tiempo sin escribir (mucho trabajo, y demasiadas gripes una detrás de otra...) pero vuelvo por aquí.
He estado trabajando bastante en AbanQ para implementar un ERP en una imprenta. La verdad, es que, con soluciones como esta, sobran herramientas cerradas y que además, no suelen tener una adaptación tan buena como ésta tiene.
Uno de los aspectos más importantes de una aplicación, es su interfaz. Los programadores muchas veces no tienen en consideración el interfaz de las aplicaciones, pero son en muchas ocasiones un factor subjetivo clave a la hora de percibir, y por extensión valorar, una aplicación.
Y el aspecto de AbanQ en su versión para Windows, a mí me parecía... feo. Os pongo una captura de el aspecto original que tienen los ejecutables que InfoSial ofrece amablemente para descarga.

AbanQ antes de las modificaciones
Otro detalle se unía a que la interfaz no me pareciera... correcta. Los formularios se abrían en determinadas zonas del escritorio ocultando muchas veces la botonera de navegación porque quedaban fuera del mismo. ¿Solución? Todos los formularios que se abran se centrarán en el escritorio.
Os voy a explicar cómo hacer estos cambios tan sencillos en el código fuente.
[Modificación 27-febrero-2009]: A petición del foro de AbanQ de Google Groups, os pongo un enlace a la aplicación compilada en windows (con MinGW) y con todos los archivos necesarios aqui. Es una versión Quick.
Donde dije digo, digo Diego…
Hace unos días, publiqué que descartaba AbanQ como posible ERP que adaptar a mi empresa... Sin embargo, a día de hoy tengo que rectificar. Es cierto que AbanQ en cuanto a funcionalidad es menor a OpenBravo u OpenXpertya. Pero, la construcción de OpenBravo es mucho más compleja, aparte de que existe bastante polémica alrededor de la aplicación (como puede verse en algunos hilos de barrapunto, aquí, sobre su licencia y sus formas como empresa, o aquí, entrada de una persona que tenía un blog dedicado en exclusiva a OpenBravo y que tuvo que cerrar).
Lo que sí está claro es que OpenBravo es un fork de Adempiere o Coimpiere, y en el que no acabo de ver (que no significa que no exista) la programación modular que sí tiene AbanQ. Es por ello, y aunque AbanQ esté por debajo en funcionalidad que voy a volver a contemplarlo. Por su modularidad.
Todo lo que encuentre que falte, lo iré implementando yo, y poniendo a disposición de la comunidad. Al fin y al cabo, AbanQ está desarrollado en Qt (que conozco con soltura)...


