43 lines
1.3 KiB
Plaintext
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
|