Files
MBS/PROYECTO/otrodir/zonas.4gl
T

43 lines
1.3 KiB
Plaintext

FUNCTION zonas(xcodigo)
DEFINE kpais VARCHAR(10),kdescripcion CHAR(30),
ppais ui.ComboBox,
xcodigo VARCHAR(10),
xcod_zona SMALLINT,
busca_zona STRING
LET xcodigo = xcodigo CLIPPED
LET ppais = ui.combobox.forname("formonly.cod_zona")
CALL ppais.clear()
# Averigua a que zona pertenece el pais seleccionado.
# Los paises extranjeros tienen una unica zona (vetb00017.cod_zona).
# Republica Dominicana (y cualquier pais con cod_zona NULL) tiene
# multiples zonas: se muestran todas las zonas nacionales (tipo_zona = 1).
SELECT a.cod_zona
INTO xcod_zona
FROM vetb00017 a
WHERE UPPER(RTRIM(a.codigo)) = UPPER(xcodigo)
IF xcod_zona IS NOT NULL THEN
# Pais extranjero: mostrar solo su zona
LET busca_zona =
"SELECT a.cod_zona, RTRIM(a.descrip) FROM vetb00008 a ",
" WHERE a.cod_zona = ", xcod_zona,
" ORDER BY a.descrip"
ELSE
# Pais con multiples zonas (Rep. Dominicana): zonas nacionales
LET busca_zona =
"SELECT a.cod_zona, RTRIM(a.descrip) FROM vetb00008 a ",
" WHERE a.tipo_zona = 1 ",
" ORDER BY a.descrip"
END IF
PREPARE comando FROM busca_zona
DECLARE busca_zonas CURSOR FOR comando
FOREACH busca_zonas INTO kpais,kdescripcion
CALL ppais.additem(kpais,kdescripcion)
END FOREACH
END FUNCTION