Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Tratamiento de constantes

Buenas.
Como respuesta de un webService obtengo un parámetro Estado que es de tipo EstadoTipo y que se compone de un array de posibles valores.
Código:
EstadoTipo = (NO_LEIDA, ACEPTADA, RECHAZADA, EXPIRADA);
No sé como trabajar con el valor que me devuelve. Si intento cargarla en memo para ver los valores devueltos me dice que no es un string y me ofrece los posibles valores de la constante.
Puedes ver la imagen del IDE

Alguien puede explicarme como trabajar con estos valores.
Gracias.
Responder Con Cita
  #2  
Antiguo 07-02-2017
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Esa definicion es de un tipo enumerado no una constante.

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #3  
Antiguo 07-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Los valores son los que pone en la imagen: 0, 1, 2, 3
Responder Con Cita
  #4  
Antiguo 07-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Gracias por la respuesta.

Y como hago para obtener el valor que me viene?
Por que si hago:
Código:
  memo.Lines.Add('Estado '+result.Metadatos[i].Estado);
Obtengo el error de compilación:
[dcc32 Error] Unit1.pas(115): E2010 Incompatible types: 'string' and 'EstadoTipo'

Saludos.
Responder Con Cita
  #5  
Antiguo 07-02-2017
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Pues en delphi 7 lo que haria seria declarar un array.

Código Delphi [-]
Valores:array[No_leida..expirada]of string=('No leida','Aceptada','Rechazada,'Expirada');

Y lo usaria asi:

Código Delphi [-]
memo.Lines.Add('Estado '+ valores[result.Metadatos[i].Estado]);
Bueno no lo he probado asi que tal vez halla que hacerle unos ajustes. Pero creo que se entiende la idea.

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #6  
Antiguo 07-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Este valor lo recibo como respuesta a una petición SOAP y se carga en una TRemotable con esta definición:
Código:
  MetadatosTipo = class(TRemotable)
  private
    FticketID: ticketID;
    FMensajeID: IDGlobalTipo;
    FEstado: EstadoTipo;
    FEmisor: TipoNIF;
    FNombreEmisor: NombreEmisorTipo;
    FNombreEmisor_Specified: boolean;
    FTitular: TipoNIF;
    FNotificado: TipoNIF;
    FTipoMensajeria: TipoMensajeTipo;
    FActoNotificado: ActoNotificadoTipo;
    FActoNotificado_Specified: boolean;
    FAsunto: AsuntoTipo;
    FCuerpo: CuerpoTipo;
    FCuerpo_Specified: boolean;
    FDetalles: DetallesMensajeTipo;
    FDetalles_Specified: boolean;
    FNombreFicheroAdjunto: NombreFicheroAdjuntoTipo;
    FNombreFicheroAdjunto_Specified: boolean;
    FFerchaPuestaDisposicion: TXSDateTime;
    FEventoRecogida: InformacionEventoTipo;
    FEventoRecogida_Specified: boolean;
    FDatosRecogida: DatosRecogidaTipo;
    FDatosRecogida_Specified: boolean;
    procedure SetNombreEmisor(Index: Integer; const ANombreEmisorTipo: NombreEmisorTipo);
    function  NombreEmisor_Specified(Index: Integer): boolean;
    procedure SetActoNotificado(Index: Integer; const AActoNotificadoTipo: ActoNotificadoTipo);
    function  ActoNotificado_Specified(Index: Integer): boolean;
    procedure SetCuerpo(Index: Integer; const ACuerpoTipo: CuerpoTipo);
    function  Cuerpo_Specified(Index: Integer): boolean;
    procedure SetDetalles(Index: Integer; const ADetallesMensajeTipo: DetallesMensajeTipo);
    function  Detalles_Specified(Index: Integer): boolean;
    procedure SetNombreFicheroAdjunto(Index: Integer; const ANombreFicheroAdjuntoTipo: NombreFicheroAdjuntoTipo);
    function  NombreFicheroAdjunto_Specified(Index: Integer): boolean;
    procedure SetEventoRecogida(Index: Integer; const AInformacionEventoTipo: InformacionEventoTipo);
    function  EventoRecogida_Specified(Index: Integer): boolean;
    procedure SetDatosRecogida(Index: Integer; const ADatosRecogidaTipo: DatosRecogidaTipo);
    function  DatosRecogida_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property ticketID:                ticketID                  Index (IS_ATTR) read FticketID write FticketID;
    property MensajeID:               IDGlobalTipo              read FMensajeID write FMensajeID;
    property Estado:                  EstadoTipo                read FEstado write FEstado;
    property Emisor:                  TipoNIF                   read FEmisor write FEmisor;
    property NombreEmisor:            NombreEmisorTipo          Index (IS_OPTN) read FNombreEmisor write SetNombreEmisor stored NombreEmisor_Specified;
    property Titular:                 TipoNIF                   read FTitular write FTitular;
    property Notificado:              TipoNIF                   read FNotificado write FNotificado;
    property TipoMensajeria:          TipoMensajeTipo           read FTipoMensajeria write FTipoMensajeria;
    property ActoNotificado:          ActoNotificadoTipo        Index (IS_OPTN) read FActoNotificado write SetActoNotificado stored ActoNotificado_Specified;
    property Asunto:                  AsuntoTipo                read FAsunto write FAsunto;
    property Cuerpo:                  CuerpoTipo                Index (IS_OPTN) read FCuerpo write SetCuerpo stored Cuerpo_Specified;
    property Detalles:                DetallesMensajeTipo       Index (IS_OPTN) read FDetalles write SetDetalles stored Detalles_Specified;
    property NombreFicheroAdjunto:    NombreFicheroAdjuntoTipo  Index (IS_OPTN) read FNombreFicheroAdjunto write SetNombreFicheroAdjunto stored NombreFicheroAdjunto_Specified;
    property FerchaPuestaDisposicion: TXSDateTime               read FFerchaPuestaDisposicion write FFerchaPuestaDisposicion;
    property EventoRecogida:          InformacionEventoTipo     Index (IS_OPTN) read FEventoRecogida write SetEventoRecogida stored EventoRecogida_Specified;
    property DatosRecogida:           DatosRecogidaTipo         Index (IS_OPTN) read FDatosRecogida write SetDatosRecogida stored DatosRecogida_Specified;
  end;
y EstadoTipo se define como:
Código:
  EstadoTipo = (NO_LEIDA, ACEPTADA, RECHAZADA, EXPIRADA);
Al intentar leer los datos de la respuesta en cuando no sé como acceder al valor que trae.

Como ves en la imagen del otro post me ofrece los posibles valores de EstadoTipo.

Y si intento
Código:
memo.Lines.Add('Estado '+result.Metadatos[i].Estado);
me da el error de compilación que puse en el otro post.

De hecho, si lo vuelco en un xml obtengo su valor:
Código:
<tns:RespuestaConsulta xmlns:ape="urn:correos.es:ape.sne.datos.1.0" 
                       xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
					   xmlns:tns="urn:correos.es:ape.sne.ws.accesobuzon.1.0">
	<tns:Paginacion>
		<tns:pagina>1</tns:pagina>
		<tns:totalPaginas>2</tns:totalPaginas>
		<tns:numeroElementos>30</tns:numeroElementos>
	</tns:Paginacion>
	<tns:Metadatos tns:ticketID="148620">
		<tns:MensajeID>1485796663920-1-0</tns:MensajeID>
		<tns:Estado>NO_LEIDA</tns:Estado>
		<tns:Emisor>28972577Y</tns:Emisor>
		<tns:NombreEmisor>Servicio de Notificaciones Electrónicas SNE</tns:NombreEmisor>
		<tns:Titular>P3208600A</tns:Titular>
		<tns:Notificado>P3208600A</tns:Notificado>
		<tns:TipoMensajeria>NOTIFICACION</tns:TipoMensajeria>
		<tns:ActoNotificado>PRUEBAS</tns:ActoNotificado>
		<tns:Asunto>Prueba Notificacion</tns:Asunto>
		<tns:Cuerpo>esto es una prueba de Notificacion WS</tns:Cuerpo>
		<tns:Detalles />
		<tns:FerchaPuestaDisposicion>2017-01-30T18:18:04+01:00</tns:FerchaPuestaDisposicion>
	</tns:Metadatos>
</tns:RespuestaConsulta>

Última edición por apicito fecha: 07-02-2017 a las 20:27:38.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
constantes temporales Crandel Varios 11 17-01-2007 00:53:02
Constantes o uso de Dominios Abel Garcia Firebird e Interbase 1 10-10-2006 16:15:29
variables y constantes SaGuMa Varios 13 03-10-2006 16:18:03
Def. de constantes - Casting Mariana OOP 3 21-10-2005 19:24:23
constantes globales acrophet Varios 3 18-09-2003 13:51:45


La franja horaria es GMT +2. Ahora son las 10:51:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi