]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/articulos.c
Agrego indice y consulta por descripcion
[z.facultad/75.06/emufs.git] / emufs_gui / articulos.c
index 3b0cefc3aec0549c9d214a68fd429ec907163878..34006894016176996243b337dfc8b82160711944 100644 (file)
@@ -114,6 +114,7 @@ t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque)
                tmp->fp = emufs_crear("articulos", tipo-1, tam_bloque, sizeof(t_Articulo));
                /* Agrego los indices */
                PERR("Voy a agregar un indice");
+               emufs_agregar_indice(tmp->fp, "presentacion", IND_EXAHUSTIVO, IND_B, IDX_STRING, STRUCT_OFFSET(un_articulo, presentacion), 512);
                emufs_agregar_indice(tmp->fp, "desc", IND_EXAHUSTIVO, IND_B, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), 512);
                emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, IND_B, IDX_INT, 0, 512);
                if (!tmp->fp) {
@@ -740,7 +741,7 @@ void art_consultas_codigos(char *s)
        delwin(win);
 }
 
-void art_consultas_desc(char *s)
+void art_consultas_varias(char *nombre_indice, char *titulo)
 {
        int i, cant, error;
        char *desc, *tmp;
@@ -763,11 +764,11 @@ void art_consultas_desc(char *s)
        
        /* El usuario ingresa rango a listar */
        form = form_crear(win1);
-       form_agregar_widget(form, INPUT, "Descripcion", 50, "");
+       form_agregar_widget(form, INPUT, titulo, 50, "");
 
        form_ejecutar(form, 2, 2);
 
-       tmp = form_obtener_valor_char(form, "Descripcion");
+       tmp = form_obtener_valor_char(form, titulo);
        desc = malloc(sizeof(char)*(strlen(tmp)+1));
        strcpy(desc, tmp);
 
@@ -786,7 +787,7 @@ void art_consultas_desc(char *s)
        lista_agregar_columna(lista, DATO_STR, 65, 9);   /* enim       */
 
        /* Leo los datos desde el archivo */
-       datos = emufs_buscar_registros(fs, "desc", desc, &cant);
+       datos = emufs_buscar_registros(fs, nombre_indice, desc, &cant);
        for(i=0; i<cant; i++) {
                k.i_clave = datos[i].id;
                error = 1;
@@ -822,17 +823,21 @@ void art_consultas(char *s)
        MENU(mi_menu) {
                MENU_OPCION("por Codigos", "Consulta de Articulos por rango de codigo."),
                MENU_OPCION("por Descripcion", "Consulta por descripcion"),
+               MENU_OPCION("por Presentacion", "Consulta por Presentacion"),
                MENU_OPCION("Volver", "Volver al menu anterior.")
        };
        int opt;
        
-       while ((opt = menu_ejecutar(mi_menu, 3, "Consulta de Articulos")) != 2) {
+       while ((opt = menu_ejecutar(mi_menu, 4, "Consulta de Articulos")) != 3) {
                switch (opt) {
                        case 0:
                                art_consultas_codigos(s);
                        break;
                        case 1:
-                               art_consultas_desc(s);
+                               art_consultas_varias("desc", "Descripcion");
+                       break;
+                       case 2:
+                               art_consultas_varias("presentacion", "Presentacion");
                }
        }
 }