Ver Mensaje Individual
  #894  
Antiguo 09-05-2017
nachoexe nachoexe is offline
Miembro
 
Registrado: sep 2011
Ubicación: Madrid
Posts: 50
Reputación: 13
nachoexe Va por buen camino
Cita:
Empezado por josecarrillo Ver Mensaje
Me respondo a mi mismo por si le sirve a alguien.
Es un tipo enumerado y hay funciones específicas.
Seguro que hay alguna forma mas simple, pero esta me funciona.
De esta forma si cambia la lista en versiones futuras, seguirá funcionando.

uses ..., typinfo ;

var
idpais,ci:integer;
codigopais:string;

begin
CodigoPais:='IT';
idpais:=-1;
for ci := ord(Low(countrytype2)) to ord(High(countrytype2)) do
if CodigoPais= GetEnumName(TypeInfo(countrytype2),ci) then
begin
idpais:=ci;
ShowMessage( GetEnumName(TypeInfo(countrytype2),ci)); // solo para comprobar valor.
end;
...

if idPais>-1 then
ARegLRFacturasEmitidas[0].FacturaExpedida.Contraparte.IDOtro.CodigoPais:=CountryType2(idpais);

...
Muy buena idea el trabajar directamente con la el type de paises, así si lo cambian no pasa nada.
Solo una sugerencia, ten en cuenta que en el countrytype2 hay paises con 3 letras, aunque seguramente no se utilicen en la vida, así que deberías coger solo las dos primeras posiciones
Responder Con Cita