{ ------------------------------------------------------------------------------ PROGRAMA : CGPRMT010 OBJETIVO : Mantenimiento de Entradas de diario PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : Octubre 13, 1993. ------------------------------------------------------------------------------ } GLOBALS "cgprgb000.4gl" MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* FROM companias a CALL cgprmt010() END MAIN FUNCTION cgprmt010() OPTIONS FORM LINE 9, ERROR LINE 24, COMMENT LINE 23 #CALL pantalla() OPEN FORM cgfmmt010 FROM "cgfmmt010" DISPLAY FORM cgfmmt010 CLEAR FORM DISPLAY "cgprmt010" AT 4,3 DISPLAY "Maestra Entradas de Diario" AT 6,27 MENU "OPCION" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL cgpcad10() COMMAND "Consultar-modificar" " Busca Registro Cancela Operacion" CALL cgpcmod10() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION cgpcad10() # Captura de informacion INITIALIZE entradas.* TO NULL INPUT BY NAME entradas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) AFTER FIELD entrada_no IF entradas.entrada_no is not null THEN SELECT * INTO entradas.* FROM cgtb00011 WHERE entrada_no = entradas.entrada_no and status_t is null # Chequeo del registro si esta eliminado IF status != notfound THEN IF entradas.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD entrada_no END IF END IF # Chequeo si el registro existe, si existe desplega las informaciones IF status != notfound THEN LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME entradas.entrada_no,entradas.descripcion, entradas.prog_4gl INITIALIZE entradas.* TO NULL NEXT FIELD entrada_no END IF DISPLAY BY NAME entradas.descripcion ELSE LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD entrada_no END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF INSERT INTO cgtb00011 values (entradas.entrada_no,entradas.descripcion, entradas.prog_4gl,entradas.referencia, null,SUSER_SNAME(),GETDATE(),null,null) CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 1 CALL msg(numero_msg) INITIALIZE entradas.* TO NULL CLEAR FORM NEXT FIELD entrada_no EXIT INPUT END INPUT END FUNCTION FUNCTION cgpcmod10() # Captura del criterio de seleccion CONSTRUCT BY NAME criterio ON cgtb00011.* LET selec2 = "SELECT * FROM cgtb00011 WHERE ",criterio clipped," and status_t is null ", " ORDER BY 1" PREPARE comando FROM selec2 DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO entradas.* IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME entradas.* MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT busca INTO entradas.* IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME entradas.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS busca INTO entradas.* IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME entradas.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST busca INTO entradas.* LET numero_msg = 5 CALL msg(numero_msg) DISPLAY BY NAME entradas.* COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH FIRST busca INTO entradas.* LET numero_msg = 4 CALL msg(numero_msg) DISPLAY BY NAME entradas.* COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF entradas.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME entradas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) BEFORE FIELD entrada_no NEXT FIELD descripcion AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF IF entradas.descripcion is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descripcion END IF EXIT INPUT END INPUT UPDATE cgtb00011 set descripcion = entradas.descripcion, prog_4gl = entradas.prog_4gl, referencia = entradas.referencia WHERE entrada_no = entradas.entrada_no CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY("L") "eLiminar" UPDATE cgtb00011 set status_t = "E" WHERE entrada_no = entradas.entrada_no LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION