void menu_estadisticas();
void menu_ver_registros();
void menu_ver_bloques();
+void menu_ver_indices();
void preguntar_nuevo_tipo(const char *title, int *tipo, int *tam_bloque, int *tam_reg);
char *preguntar_file();
}
}
-int main_menu()
+void ver_indice(int arch, char *indice)
{
- int c, w, h;
+ INDICE *idx;
+ int w, h;
WINDOW *win;
+ switch (arch) {
+ case 0:
+ idx = emufs_buscar_indice_por_nombre(art_get_lst()->fp, indice);
+ break;
+ case 1:
+ idx = emufs_buscar_indice_por_nombre(fact_get_lst()->fp, indice);
+ }
+ h = LINES-4;
+ w = COLS-2;
+ win = newwin(h, w, 2, 1);
+
+ if ((idx != NULL) && (idx->tipo != IND_B_PLUS)) {
+ emufs_indice_b_ver(idx, win, w, h, 0);
+ } else {
+ if (idx != NULL) {
+ WINDOW *dlg;
+ dlg = msg_box(win, w, h, "El tipo de arbol B+ no esta soportado en el visor");
+ getch();
+ msg_box_free(win, dlg);
+ }
+ }
+ delwin(win);
+}
+
+void menu_ver_indices()
+{
+ int arch[8] = {0, 0, 0, 1, 1, 1, 1, 1};
+ char *nombres[8] = {"codigo", "desc", "presentacion",
+ "numero", "emision", "vto", "cheque", "ctacte"};
+ MENU(mi_menu) {
+ MENU_OPCION("Articulos->codigo",""),
+ MENU_OPCION("Articulos->desc",""),
+ MENU_OPCION("Articulos->presentacion",""),
+ MENU_OPCION("Facturas->numero",""),
+ MENU_OPCION("Facturas->emision",""),
+ MENU_OPCION("Facturas->vto",""),
+ MENU_OPCION("Facturas->cheque", ""),
+ MENU_OPCION("Facturas->ctacte", ""),
+ MENU_OPCION("Volver", "Volver al menu anterior.")
+ };
+ int c;
+
+ while ((c=menu_ejecutar(mi_menu, 9, "Menu Principal"))!=8) {
+ ver_indice(arch[c], nombres[c]);
+ }
+}
+
+int main_menu()
+{
+ int c;
MENU(mi_menu) {
MENU_OPCION("Articulos","Alta,baja,consulta y modificacion de articulos."),
MENU_OPCION("Facturas","Alta,baja,consulta y modificacion de facturas."),
MENU_OPCION("Ver Bloques","Ver bloques (en su contexto) de los archivos."),
MENU_OPCION("Estadisticas","Ver estadisticas de ocupacion de archivos."),
MENU_OPCION("Mantenimiento","Tareas de mantenimiento de los archivos."),
- MENU_OPCION("DEBUG", "Debug de Arbol B"),
+ MENU_OPCION("Ver Indices", "Permite ver y recorrer los indices"),
MENU_OPCION("Salir", "Salir del sistema.")
};
menu_mantenimiento();
break;
case 6:
- h = LINES-2;
- w = COLS-2;
- win = newwin(h, w, 1, 1);
- emufs_indice_b_ver(fact_get_lst()->fp->indices, win, w, h, 0);
- delwin(win);
+ menu_ver_indices();
}
}