1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
15 \use_numerical_citations 0
16 \paperorientation portrait
23 \paragraph_separation indent
25 \quotes_language english
29 \paperpagestyle default
44 La interfaz de visualización de EMUFS permite interactuar con los distintos
45 tipos de archivos para cada conjunto de datos almacenado (ya sean facturas,
46 articulos, o notas de facturas).
52 Para poder correr la interfaz gráfica necesitará previamente compilarla
53 (así como compilar los programas auxiliares), para ello necesitará cumplir
54 con los siguiente requisitos:
57 Compilador gcc versión 3.3.x preferentemente.
58 No podemos garantizar la compatibilidad con otras versiones debido a cambios
59 drásticos que sufrieron las versiones anteriores
62 Parser XML libxml2 versión 2.6.x .
63 Versiones 2.5 y anteriores con incompatibles en la API y no funcionarán.
66 libncurses version 5 o superior
75 Para compilar la GUI solo debe ejecutar el comando make dentro del directorio
77 Esto compilará primero una biblioteca estática con los manejadores de los
78 3 tipos de archivo y luego compilará la GUI.
84 Preparar el banco de pruebas
87 Antes de comenzar a utilizar la GUI deberá generar los archivo XML desde
88 donde serán leídos los datos para generar los archivos que luego se utilizará.
89 Para ello el proceso de compilación creará 2 ejecutable : generar_fact
90 y generar_art, que se ubicarán en la carpeta generar dentro de emufs_gui.
93 Estos programas generan facturas y artículos respectivamente en forma aleatorio,
94 utilizando diccionarios de datos para llenar los campos.
95 Primero deberá ejecutar generar_art, ya que éste último crea un diccionario
96 de artículos que luego utilizará generar_fact para los items de las facturas.
99 Ambos programas reciben 2 parámetros : el nombre de archivo de salida y
100 la cantidad de entradas a generar.
106 El programa acepta varios parámetros, algunos de ellos opcionales, otros
107 obligatorios dependiendo de las elecciones realizadas.
110 Para obtener una completa descripción de los parámetros el programa acepta
112 \begin_inset Quotes eld
116 \begin_inset Quotes erd
120 \begin_inset Quotes eld
124 \begin_inset Quotes erd
127 para mostrar una ayuda en línea.
130 Si el programa es ejecutado sin parámetros tratará de recuperar los artículos
131 y las facturas desde archivo previamente creados.
134 Para crear un archivo de artículos a partir de un archivo XML bien formado,
135 se debe ejecutar el programa con la opción
136 \begin_inset Quotes eld
140 \begin_inset Quotes erd
144 Dicha opción espera que el siguiente parámetro sea el nombre del archivo
145 a leer, y que éste útimo tenga extensión xml (notar que es solo minúsculas).
146 A continuación espera encontrar el tipo de archivo que se quiere crear,
147 pudiendo ser éste último 1, 2 ó 3.
148 De ser el tipo de archivo con bloques, se le exigirá que ingrese como último
149 parámetro el tamaño del mismo.
152 Para crear el archivo de facturas es el mismo procedimiento, solo que utilizando
154 \begin_inset Quotes eld
158 \begin_inset Quotes erd
162 El archivo de notas es creado por el sistema de tipo 2 por defecto y no
163 puede ser cambiado desde la línea de comandos.
164 Para ello puede utilizar la opción correspondiente del menú mantenimiento.
167 Debe saber que estos parámetros no son mutuamente excluyentes, por lo que
168 podrá utilizarlos al mismo tiempo.
174 A continuación se da una lista detallada de las operaciones que son posibles
175 hacerse desde esta interfaz :
178 Alta, baja y modificación de Artículos.
179 Para ello se abrirá una ventana donde se podrá editar comodamente los datos.
182 Alta, baja y modificación
188 En la modificación de una factura no se podrán cambiar ni la cantidad de
189 items y los datos de los mismo!.
190 La nota si podrá ser modificada.
197 Ver fisicamente los registros de cualquiera de los archivos sin importar
198 el tipo al que pertenezcan.
199 Desde aquí podrá tambien eliminar, agregar o modificar el registro actual.
203 Para aquellos archivos que hallan sido creados con un tipo con bloques,
204 podrá verlos fisicamente, viendo el bloque actual y los anteriores/posteriores.
207 Ver las estadísticas de cada archivo según su tipo, para realizar comparativas
210 Cambiar el formato de cualquier tipo o parametros de archivo.
213 Compactar los archivos.
219 Durante el desarrollo se han tomado ciertas decisiones en el diseño o restriccio
221 En este punto nos centraremos en las especificas tomadas por la interfaz
222 de visualización, y no tomaremos en cuenta las que ponen los tipos de archivo
226 La cantidad de items por factura es igual a 10 para archivos de registro
227 de longitud fija y bloque parametrizado (TIPO 3).
228 Esta decición fue tomada por poner un valor típico de items que puede haber
229 en una factura, evaluando un caso de un comercio chico.
230 Como el tipo de archivo permite cortar un registro y guardarlo en varios
231 bloques consecutivos, la restricción de cantidad solo es un hecho de elección,
232 y así pusieramos 100, 1000, 10000 no habría diferencia, ya que el tipo
233 de archivo lo guardaría sin problemas.
236 Si el archivo es de TIPO 3 y se agregan más de 10 items estos son truncados
237 y descartados sin aviso al usuario.
238 Esta fue una desición basada en el tiempo del proyecto.
239 De tener que validar y consultar al usuario se hubiera perdido tiempo de
240 mucho valor para completar objetivos más importantes del TP.
243 Los campos son delimitados por el caracter nulo (en caso de los strings)
244 y por la longitud del tipo de dato en caso de los campos numéricos.
245 De esta forma se aprovechan las características de manejo de string en
252 Un ejemplo de vista de registros es la que se observa a continuación :
256 \begin_inset Graphics
257 filename /home/share/programacion/FIUBA/Datos/emufs/doc/gui_ver_registros.eps
266 Como puede verse el registro actual se ve resaltado respecto de los demás.
267 También se puede observar que en este caso (el bloque es de 2000 bytes)
268 no entra toda la información en pantalla, pero es posible desplazar utilizando
272 Los datos binarios son convertidos a texto para ser mostrados, siendo la
273 representación elegida :
276 (XXX) : Representa un ID.
277 En el caso de las facturas también aparece en los datos el número de índice
278 de la nota asociada con esta representación.
281 {XXX} : Representa el tamaño de los datos.
282 Esto siempre y cuando el registro sea de longitud variable (TIPO1 y TIPO2).
285 También es posible ejecutar acciones de edición sobre el registro seleccioado,
286 así como buscar por ID de registro.
289 Cuando se procesa la información en crudo (es decir, el area de datos) algunos
290 bytes son modificados para evitar errores visuales.
291 Un caso es cuando el bytes es compuesto por 8 bits de valor 0 (caracter
295 Lo que se hace es cambiarlo por un caracter que tenga representacion visual
297 Lo mismo suscede para los caracteres de control (
303 r por ejemplo) y los espacion.
304 Esta política fue tomada ya que estos caracteres modifican la salida en
305 pantalla, y de no evitar su envío a la pantalla, producirían resultados
306 inesperados en la visualización.
312 A continuación se enumera los errores que sabemos que existen, que no hemos
313 tenido tiempo de corregir, pero que no hacen al TP en sí :
316 Si la consola o terminal cambia de tamaño la GUI no sigue el nuevo tamaño,
317 pudiendose producir defectos visuales.
318 Esto es debido a que se debe capturar una señal que envia el SO, pero no
319 pudimos hacer que funciones con todas las terminales bajo X, por lo que
320 se decidio dejarlo para cuando tengamos tiempo.
323 Si la GUI fue compilada con -DDEBUG y no se utiliza un PIPE para redirigir
324 la salida de error estandar, es posible que algun componente del programa
325 emita un mensaje de debug o warning y esta cause defectos de visualización
326 o el programa deje directamente de funcionar.
327 Esto es un defecto de la biblioteca NCurses.