articulos, o notas de facturas).
\layout Section
+Instalación
+\layout Standard
+
+Para poder correr la interfaz gráfica necesitará previamente compilarla
+ (así como compilar los programas auxiliares), para ello necesitará cumplir
+ con los siguiente requisitos:
+\layout Enumerate
+
+Compilador gcc versión 3.3.x preferentemente.
+ No podemos garantizar la compatibilidad con otras versiones debido a cambios
+ drásticos que sufrieron las versiones anteriores
+\layout Enumerate
+
+Parser XML libxml2 versión 2.6.x .
+ Versiones 2.5 y anteriores con incompatibles en la API y no funcionarán.
+\layout Enumerate
+
+libncurses version 5 o superior
+\layout Enumerate
+
+GNU Make
+\layout Subsection
+
+Compilar GUI
+\layout Standard
+
+Para compilar la GUI solo debe ejecutar el comando make dentro del directorio
+ raíz del proyecto.
+ Esto compilará primero una biblioteca estática con los manejadores de los
+ 3 tipos de archivo y luego compilará la GUI.
+\layout LyX-Code
+
+#~/emufs/> make
+\layout Subsection
+
+Preparar el banco de pruebas
+\layout Standard
+
+Antes de comenzar a utilizar la GUI deberá generar los archivo XML desde
+ donde serán leídos los datos para generar los archivos que luego se utilizará.
+ Para ello el proceso de compilación creará 2 ejecutable : generar_fact
+ y generar_art, que se ubicarán en la carpeta generar dentro de emufs_gui.
+\layout Standard
+
+Estos programas generan facturas y artículos respectivamente en forma aleatorio,
+ utilizando diccionarios de datos para llenar los campos.
+ Primero deberá ejecutar generar_art, ya que éste último crea un diccionario
+ de artículos que luego utilizará generar_fact para los items de las facturas.
+\layout Standard
+
+Ambos programas reciben 2 parámetros : el nombre de archivo de salida y
+ la cantidad de entradas a generar.
+\layout Section
+
Línea de comandos
\layout Standard
\layout Standard
En la modificación de una factura no se podrán cambiar ni la cantidad de
- items y los datos de los mismo!
+ items y los datos de los mismo!.
+ La nota si podrá ser modificada.
\end_inset
de Facturas.
La cantidad de items por factura es igual a 10 para archivos de registro
de longitud fija y bloque parametrizado (TIPO 3).
Esta decición fue tomada por poner un valor típico de items que puede haber
- en una factura.
+ en una factura, evaluando un caso de un comercio chico.
Como el tipo de archivo permite cortar un registro y guardarlo en varios
bloques consecutivos, la restricción de cantidad solo es un hecho de elección,
y así pusieramos 100, 1000, 10000 no habría diferencia, ya que el tipo
y por la longitud del tipo de dato en caso de los campos numéricos.
De esta forma se aprovechan las características de manejo de string en
C.
-\layout Enumerate
-
-Cuando se leen registros que ocupan más de un bloque, solo se jutan todos
- los bloques que ocupa dicho registro y eso es mostrado al usuario.
- Fue diseñado de esta manera debido a que parsear la data binaria que contiene
- el archivo requiere saber donde esta, cuanto ocupa y como tratarla.
- De permitir mostrar registros incompletos, complicaría mucho más le parser
- actual, ya que por ejemplo podríamos tener que un campo entero (un int
- de 4 bytes) empiece en el registro actual y termine en el siguiente.
\layout Section
Vista de Registros
representación elegida :
\layout Itemize
-[XXX] : Son valores numéricos perteneciente a los datos (numero de factura,
- numero de artículo, etc)
-\layout Itemize
-
(XXX) : Representa un ID.
En el caso de las facturas también aparece en los datos el número de índice
de la nota asociada con esta representación.
También es posible ejecutar acciones de edición sobre el registro seleccioado,
así como buscar por ID de registro.
+\layout Standard
+
+Cuando se procesa la información en crudo (es decir, el area de datos) algunos
+ bytes son modificados para evitar errores visuales.
+ Un caso es cuando el bytes es compuesto por 8 bits de valor 0 (caracter
+
+\backslash
+0).
+ Lo que se hace es cambiarlo por un caracter que tenga representacion visual
+ (en este caso un *).
+ Lo mismo suscede para los caracteres de control (
+\backslash
+b
+\backslash
+n
+\backslash
+r por ejemplo) y los espacion.
+ Esta política fue tomada ya que estos caracteres modifican la salida en
+ pantalla, y de no evitar su envío a la pantalla, producirían resultados
+ inesperados en la visualización.
+\layout Section
+
+Bugs conocidos
+\layout Standard
+
+A continuación se enumera los errores que sabemos que existen, que no hemos
+ tenido tiempo de corregir, pero que no hacen al TP en sí :
+\layout Enumerate
+
+Si la consola o terminal cambia de tamaño la GUI no sigue el nuevo tamaño,
+ pudiendose producir defectos visuales.
+ Esto es debido a que se debe capturar una señal que envia el SO, pero no
+ pudimos hacer que funciones con todas las terminales bajo X, por lo que
+ se decidio dejarlo para cuando tengamos tiempo.
+\layout Enumerate
+
+Si la GUI fue compilada con -DDEBUG y no se utiliza un PIPE para redirigir
+ la salida de error estandar, es posible que algun componente del programa
+ emita un mensaje de debug o warning y esta cause defectos de visualización
+ o el programa deje directamente de funcionar.
+ Esto es un defecto de la biblioteca NCurses.
\the_end