100 lines
2.4 KiB
Plaintext
100 lines
2.4 KiB
Plaintext
{
|
|
----------------------------------------------------------------------------
|
|
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
|