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