martes, 10 de agosto de 2010

Procedimiento: Carga de datos - actualización de un fichero con las provincias de España


Cargar un fichero con todas las provincias de España



Partiendo de dos constantes [NumeroFichero="255"] y [NombreFichero="Provincias"], este procedimiento sirve de buena utilidad para ser llamado cada vez que se inicie una sesión de trabajo (siempre y cuando utilicemos una tabla para las provincias en la aplicación), para crearnos el fichero de provincias, abasteciendose de unos parámetros data tanto para códigos de provincia, como para descripciones de las provincias.

El número o nombre de las constantes declaradas, se puede cambiar con el que más convenga.


proc CreaProvincias()
field=m
const NumeroFichero="255"
const NombreFichero="Provincias"
field=m
dcl e% ; para en error
dcl cod$=2(51) ; data para los codigos de la provincia
dcl des$=20(51) ; data para las descripciones de las provincias
dcl buclex%
dcl TamProvincia$=20 ; Tampon para busqueda por descripcion de la provincia
field=m
dcl pv00$=2 ; Código de provincia
dcl pvin# ; Indice
dcl pv01$=50 ; Descripción provincia
endloc

; Borrado de las datas
restore

; Creacion del fichero en funcion del valor descrito en la constante NombreFichero
assign=NumeroFichero,NombreFichero,wr,mc:TamProvincia
cfile=NumeroFichero,K=2,D=50:NEXT,E
key=NumeroFichero,"Descripcion",50
ckey=NumeroFichero:next,e
link=NumeroFichero,"Decripcion"
clink=NumeroFichero:next,e

; Carga de las datas
for buclex=1 to 51
read=0:cod(buclex)
next buclex

for buclex=1 to 51
read=0:des(buclex)
next buclex

; Carga de datos en el fichero multicriterio
for buclex=1 to 51
pv00=cod(buclex)
pv01=des(buclex)
insert=NumeroFichero,pv00,/ff:next,e,pv01,50
if e=81
modif=NumeroFichero,pv00,/ff:next,e,pv01,50
endif
next buclex

data "01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18"
data "19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36"
data "37","38","39","40","41","42","43","44","45","46","47","48","49","50","66"

DATA "ALAVA","ALBACETE","ALICANTE","ALMERIA","AVILA","BADAJOZ","BALEARES","BARCELONA","BURGOS"
DATA "CACERES","CADIZ","CASTELLON","CIUDAD REAL","CORDOBA","CORUÑA","CUENCA","GERONA","GRANADA"
DATA "GUADALAJARA","GUIPUZCOA","HUELVA","HUESCA","JAEN","LEON","LERIDA","RIOJA (LA)","LUGO","MADRID"
DATA "MALAGA","MURCIA","NAVARRA","ORENSE","ASTURIAS","PALENCIA","PALMAS (LAS)","PONTEVEDRA","SALAMANCA"
DATA "STA CRUZ DE TENERIFE","CANTABRIA","SEGOVIA","SEVILLA","SORIA","TARRAGONA","TERUEL","TOLEDO"
DATA "VALENCIA","VALLADOLID","VIZCAYA","ZAMORA","ZARAGOZA","EXTRANJERO"
endproc

Sintaxix:

CreaProvincias

1 comentario: