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) {
delwin(win);
}
-void art_consultas_desc(char *s)
+void art_consultas_varias(char *nombre_indice, char *titulo)
{
int i, cant, error;
char *desc, *tmp;
/* 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);
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;
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");
}
}
}