{ ---------------------------------------------------------------------------- PROGRAMA : CGPRMT019 OBJETIVO : MANTENIMIENTO CODIGOS ESTADOS FINANCIEROS PROGRAMADOR : JUAN F. SOTO FECHA : NOVIEMBRE 12, 2009 ---------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" DEFINE estados DYNAMIC ARRAY OF RECORD codigo_estado CHAR(10), descripcion CHAR(30) END RECORD, aestado RECORD codigo_est CHAR(10), descripcion_est CHAR(30) END RECORD 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 cgprmt019() END MAIN FUNCTION cgprmt019() OPEN WINDOW w1 AT 8,4 WITH FORM "cgfmmt019" ATTRIBUTE (BORDER,FORM LINE FIRST + 1,PROMPT LINE LAST) MENU ON ACTION nuevo CALL adiciona() ON ACTION busca CALL modifica() ON ACTION salir EXIT PROGRAM END MENU END FUNCTION FUNCTION modifica() DECLARE busca CURSOR FOR SELECT a.codigo_Estado,a.descripcion FROM cgtb00035 LET idx = 1 FOREACH busca INTO estados[idx].* LET idx = idx + 1 END FOREACH CALL SET_COUNT(idx-1) DIALOG INPUT ARRAY estados FROM sestado.* ATTRIBUTE (WITHOUT DEFAULTS=true) AFTER INPUT LET curr = arr_curr() LET aestado.codigo_est = estados[curr].codigo_estado LET aestado.descripcion_est = estados[curr].descripcion END INPUT INPUT BY NAME aestado.* ATTRIBUTE(WITHOUT DEFAULTS=TRUE) AFTER FIELD codigo_est SELECT a.descripcion INTO aestado.descripcion_est FROM cgtb00035 a WHERE a.codigo_estado = aestado.codigo_est IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD codigo_est END IF END INPUT ON ACTION salvar CALL inserta() ON ACTION cancel LET int_flag = FALSE EXIT DIALOG END DIALOG CLOSE WINDOW w1 END FUNCTION FUNCTION adiciona() END FUNCTION FUNCTION inserta() SELECT * FROM cgtb00035 WHERE codigo_estado = aestado.codigo_est IF STATUS = NOTFOUND THEN INSERT INTO cgtb00035 VALUES (aestado.*) ELSE UPDATE cgtb00035 SET descripcion = aestado.descripcion_est WHERE codigo_estado = aestado.codigo_est END IF END FUNCTION