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