####################################################################### # SISTEMA : DOCUMENTACION DE SISTEMA # PROGRAMA : DSPRCS006.4GL # OBJETIVO : Relacion de Tablas Vs Programas. # AUTOR : Tadeo A. Ferreras F. # FECHA : Octubre 17, 1995 ######################################################################## DATABASE rayovac GLOBALS "dsprgb000.4gl" FUNCTION dsprcs006() OPTIONS FORM LINE 8, ERROR LINE 23, PROMPT LINE 23 OPEN FORM dsfmcs006 FROM "dsfmcs006" DISPLAY FORM dsfmcs006 CALL pantalla() DISPLAY "dsprcs006" AT 4,3 ATTRIBUTE(RED) DISPLAY "Tablas Vs Programas" AT 6,30 ATTRIBUTE(BLACK) ### Creando criterio de Busqueda CONSTRUCT criterio ON a.tabla FROM tabla IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF #### Buscando las tablas en la maestra LET selec = "SELECT UNIQUE a.tabla,a.descripcion FROM dstb00005 a ", "WHERE (a.status_t IS NULL) AND ",criterio CLIPPED," ORDER BY 1" PREPARE comando FROM selec DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO dstb05.tabla,descripcion1 IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME dstb05.tabla,descripcion1 ### Menu para manejar las tablas MENU "OPCION" COMMAND "Siguiente" FETCH NEXT busca INTO dstb05.tabla,descripcion1 IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb05.tabla,descripcion1 COMMAND "Anterior" FETCH PREVIOUS busca INTO dstb05.tabla,descripcion1 IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb05.tabla,descripcion1 COMMAND "Primero" FETCH FIRST busca INTO dstb05.tabla,descripcion1 IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb05.tabla,descripcion1 COMMAND "Ultimo" FETCH LAST busca INTO dstb05.tabla,descripcion1 IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb05.tabla,descripcion1 COMMAND "Ver" "Ver Programas del Sistema Cancelar" ### Buscando los programas que manejan la tabla DECLARE busca1 CURSOR FOR SELECT UNIQUE a.programa,b.descripcion FROM dstb00006 a,dstb00001 b WHERE (a.status_t IS NULL) AND (a.programa = b.programa) AND (a.tabla = dstb05.tabla) ORDER BY 1 LET idx = 1 FOREACH busca1 INTO act2[idx].* LET idx = idx + 1 END FOREACH CALL SET_COUNT(idx - 1) ### Desplegando los programas DISPLAY ARRAY act2 TO act6_s.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF COMMAND "Retornar" EXIT MENU END MENU END FUNCTION