{ ------------------------------------------------------------------ PROGRAMA : TEPRMT002 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Procedencias. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Diciembre 2, 1992. ------------------------------------------------------------------ } GLOBALS "teprgb000.4gl" SCHEMA smarmotech MAIN CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL STARTLOG("teprmt002.txt") DISPLAY usuarios DISPLAY clave CONNECT TO "smarmotech" USER usuarios USING clave CALL teprmt002() END MAIN FUNCTION teprmt002() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM tefmmt002 FROM "tefmmt002" DISPLAY FORM tefmmt002 # CALL ayuda() DISPLAY "teprmt002" AT 4, 3 ATTRIBUTE(RED) DISPLAY "Mantenimiento de Procedencia" AT 6, 26 ATTRIBUTE(BLACK) MENU "OPCIONES" ON ACTION Adicionar LET INT_FLAG = FALSE CLEAR FORM LET INT_FLAG = FALSE CALL tepcad002() ON ACTION Consultar_modificar LET int_flag = FALSE CALL tepcmf002() ON ACTION Salir EXIT MENU END MENU END FUNCTION FUNCTION tepcad002() # WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INITIALIZE procedencias.* TO NULL LET descrip1 = NULL LET descrip2 = NULL INPUT BY NAME procedencias.* BEFORE INPUT SELECT MAX(a.procedencia) INTO procedencias.procedencia FROM tetb00002 a IF procedencias.procedencia IS NULL THEN LET procedencias.procedencia = 0 END IF LET procedencias.procedencia = procedencias.procedencia + 1 DISPLAY BY NAME procedencias.procedencia # AFTER FIELD procedencia AFTER FIELD descripcion SELECT UNIQUE descripcion INTO procedencias.descripcion FROM tetb00002 WHERE @procedencia = procedencias.procedencia IF STATUS != NOTFOUND THEN DISPLAY BY NAME procedencias.descripcion LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD procedencia END IF IF procedencias.descripcion[1] = " " OR procedencias.descripcion IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descripcion END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET numero_msg = FALSE RETURN END IF INSERT INTO tetb00002 VALUES(procedencias.procedencia, procedencias.descripcion, procedencias.status_t, usuarios, getdate(), NULL, NULL) LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION tepcmf002() DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM) ## Aqui se prepara para la captura del criterio de seleccion CONSTRUCT criterio ON a.procedencia, a.descripcion FROM procedencia1, descripcion1 BEFORE CONSTRUCT END CONSTRUCT ON ACTION buscar LET SELEC = " SELECT UNIQUE a.procedencia,a.descripcion FROM tetb00002 a ", " WHERE a.status_t IS NULL AND ", criterio CLIPPED, " ORDER BY a.procedencia " PREPARE busca FROM selec DECLARE datos SCROLL CURSOR WITH HOLD FOR busca LET idx = 1 FOREACH datos INTO b_procedencias[idx].procedencia3, b_procedencias[idx].descripcion3 LET idx = idx + 1 END FOREACH IF idx = 1 THEN CALL FGL_winmessage( "error", "NO HAY REGISTROS CON ESA CONDICION", "STOP") CALL b_procedencias.clear() EXIT DIALOG END IF DISPLAY ARRAY b_procedencias TO tb_pro.* ON ACTION actualizar DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM) INPUT BY NAME procedencias.descripcion BEFORE INPUT LET procedencias.procedencia = b_procedencias[arr_curr()].procedencia3 SELECT a.procedencia, a.descripcion, a.us_crea, a.fech_crea, a.us_mod, a.fech_mod INTO procedencias.procedencia, procedencias.descripcion, procedencias.us_crea, procedencias.fech_crea, procedencias.us_mod, procedencias.fech_mod FROM tetb00002 a WHERE a.procedencia = b_procedencias[arr_curr()].procedencia3 DISPLAY BY NAME procedencias.* ON ACTION guardar BEGIN WORK DISPLAY procedencias.descripcion UPDATE tetb00002 SET descripcion = procedencias.descripcion, us_mod = usuarios, fech_mod = getdate() WHERE @procedencia = procedencias.procedencia IF status < 0 THEN ROLLBACK WORK CALL fgl_winmessage( "error", "NO SE PUDO ACTUALIZAR", "STOP") ELSE COMMIT WORK LET numero_msg = 13 CALL msg(numero_msg) RETURN END IF END INPUT END DIALOG END DISPLAY ON ACTION CANCEL LET int_flag = FALSE CALL b_procedencias.CLEAR() CLEAR FORM EXIT DIALOG END DIALOG END FUNCTION