Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Cómo leer datos

Buenos días.

Una pregunta:

Cómo hacéis vosotros para leer los campos:

Código:
      Subsanacion :SubsanacionType;
      SinRegistroPrevio :SinRegistroPrevioType;
La definición de los tipos es:

Código:
  SubsanacionType = (S, N);
  SinRegistroPrevioType = (S, N);
Cómo sabéis si los valores "S" que viene en ambos campos los ha establecido la AEAT, o son valores que se generan al crear el objeto?.

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 10-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Buenos días.

Una pregunta:

Cómo hacéis vosotros para leer los campos:

Código:
      Subsanacion :SubsanacionType;
      SinRegistroPrevio :SinRegistroPrevioType;
La definición de los tipos es:

Código:
  SubsanacionType = (S, N);
  SinRegistroPrevioType = (S, N);
Cómo sabéis si los valores "S" que viene en ambos campos los ha establecido la AEAT, o son valores que se generan al crear el objeto?.

Muchas Gracias.
Hola @_Io, buenos dias, no entiendo la pregunta, esos campos, tanto si estan en el registro de alta, como en el de respuesta a consulta, de un registro enviado por tu SIF, los codificas tu al generar el registro, al generar de 0 un registro, no hay nada cumpliementado, lo has de cumplimentar siguiendo la causistica.


Para ello, has de tener en cuenta si el registro lo generas nuevo o es una subsanacion/rectificacion , de uno existenete en tu sif, exista o no en la AEAT, ya sea porque al generarse aun no se enviavan por estar trabajando como no verifactu, como que se rechazo al realizar el envio, etc...


Si no es esta la pregunta, por favor clarifica la duda, un saludo.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #3  
Antiguo 10-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola @_Io, buenos dias, no entiendo la pregunta, esos campos, tanto si estan en el registro de alta, como en el de respuesta a consulta, de un registro enviado por tu SIF, los codificas tu al generar el registro, al generar de 0 un registro, no hay nada cumpliementado, lo has de cumplimentar siguiendo la causistica.


Para ello, has de tener en cuenta si el registro lo generas nuevo o es una subsanacion/rectificacion , de uno existenete en tu sif, exista o no en la AEAT, ya sea porque al generarse aun no se enviavan por estar trabajando como no verifactu, como que se rechazo al realizar el envio, etc...


Si no es esta la pregunta, por favor clarifica la duda, un saludo.
Hola, buenos días.

Obviamente no me he sabido explicar.

Haz una prueba.

Realiza una consulta de una factura que hallas subido y que no esté marcada como Macrodato y comprueba el valor de este campo en el resultado. Creo que te saldrá "S"

Ya me dices si lo puedes hacer.

Saludos.
Responder Con Cita
  #4  
Antiguo 10-02-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Hola, buenos días.

Obviamente no me he sabido explicar.

Haz una prueba.

Realiza una consulta de una factura que hallas subido y que no esté marcada como Macrodato y comprueba el valor de este campo en el resultado. Creo que te saldrá "S"

Ya me dices si lo puedes hacer.

Saludos.

Buenas _Io


Yo lo acabo de hacer y efectivamente, al imprimir el campo "Macrodato" de la factura ya subida que estoy consultando me devuelve una "S" (a pesar de que cuando la subí no le informé ese valor, y según la documentación si no se informa equivale a "N"). ¿cuál sería la duda? ¿porqué devuelve una "S" en vez de una "N"?


Saludos
Responder Con Cita
  #5  
Antiguo 10-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Buenas _Io


Yo lo acabo de hacer y efectivamente, al imprimir el campo "Macrodato" de la factura ya subida que estoy consultando me devuelve una "S" (a pesar de que cuando la subí no le informé ese valor, y según la documentación si no se informa equivale a "N"). ¿cuál sería la duda? ¿porqué devuelve una "S" en vez de una "N"?


Saludos
Hola, buenos días.

Sí esa es la duda, todos los campos enumerados, como por ejemplo:

Código:
  SubsanacionType = (S, N);
  SinRegistroPrevioType = (S, N);
Si no son modificados, toman como valor por defecto el primer elemento.

La consulta sería:

Cómo saber si la "S" del campo "Macrodato", la ha puesto la AEAT, o es el valor por defecto que toma?.

Esto afecta a todos los campos enumerados.

Saludos.
Responder Con Cita
  #6  
Antiguo 10-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Hola, buenos días.

Sí esa es la duda, todos los campos enumerados, como por ejemplo:

Código:
  SubsanacionType = (S, N);
  SinRegistroPrevioType = (S, N);
Si no son modificados, toman como valor por defecto el primer elemento.

La consulta sería:

Cómo saber si la "S" del campo "Macrodato", la ha puesto la AEAT, o es el valor por defecto que toma?.

Esto afecta a todos los campos enumerados.

Saludos.
Hola, probad directamente aqui a ver que os devuelve. https://prewww1.aeat.es/wlpl/TIKE-CO...eEmitidasQuery
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #7  
Antiguo 10-02-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, probad directamente aqui a ver que os devuelve. https://prewww1.aeat.es/wlpl/TIKE-CO...eEmitidasQuery

Ahí ya probé y la columna "Macrodato" está vacía, no se ve ningún valor (lo que según la documentación debería ser lo mismo que una "N"). Pero luego el objeto que devuelve viene con la "S". Es un poco raro/confuso !
Responder Con Cita
  #8  
Antiguo 10-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Hola, yo trabajo en C# y en algunas ocasiones me ha pasado algo parecido a lo que comentáis con algunas propiedades y con otras no.

No se si os habéis fijado que algunas propiedades tienen otra propiedad con el mismo nombre pero terminadas con la palabra "Specified" que es boleana. Por ejemplo hay Macrodato y MacrodatoSpecified
Si esa segunda propiedad tiene valor falso, el valor de la propiedad principal no lo utilizo porque normalmente tiene el valor por defecto y no se ha informado.

De hecho esta "segunda" propiedad la tengo que poner a cierto cuando informo algún valor en la "primera" propiedad del objeto que estoy rellenando, porque sino ese valor no se tiene en cuenta y por ejemplo si serializo el objeto a XML, esa "primera" propiedad no aparece, como si no la hubiese informado.

A ver si os sirve para vuestro caso
Responder Con Cita
  #9  
Antiguo 10-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Ahí ya probé y la columna "Macrodato" está vacía, no se ve ningún valor (lo que según la documentación debería ser lo mismo que una "N"). Pero luego el objeto que devuelve viene con la "S". Es un poco raro/confuso !
Acabo de probar en "Consulta de datos de presentación de registros de facturación" y cuando he informado macrodato, la columna tiene valor (el que haya informado) y cuando no he informado, la columna está vacía (que significa que no en este caso).

No he probado la consulta de datos desde mi programa, estoy pendiente de hacerlo mas adelante.

Saludos
Responder Con Cita
  #10  
Antiguo 10-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Hola, simplemente consulte , el valor especified, si esta en true , lo ha puesto uesto usted, si esta en false, obvie el valor puesto que es indiferente, si hace correctamente la deserializacion en el resultado no aparecen esas claves, lo acabo de verificar, una cosa es lo que observa precargado en la respuesta y otra lo que ha detener en cuenta, que son unicamnete las claves con el flag escificado a true.

Hola, @rci, no me he dado cuenta que ya habias respondido a ello, un saludo.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #11  
Antiguo 11-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Thumbs up

Buenas Tardes.

La variables Specified, son privadas.

Código:
 RespuestaDatosRegistroFacturacionType = class(TRemotable)
  private

    ...

    FRefExterna_Specified: boolean;
    FSubsanacion_Specified: boolean;
    FRechazoPrevio_Specified: boolean;

   ....

Voy a hacer esta prueba a ver si funciona

Código:
 RespuestaDatosRegistroFacturacionType = class(TRemotable)
  private

    ...

    FRefExterna_Specified: boolean;
    FSubsanacion_Specified: boolean;
    FRechazoPrevio_Specified: boolean;

   ....

  public

    property Subsanacion_Especificada: boolean read  FSubsanacion_Specified;
    property RechazoPrevio_Especificada: boolean read  FRechazoPrevio_Specified;
En teoría podría acceder a sus valores sin tener que modificar la operativa de la clase
Saludos.
Responder Con Cita
  #12  
Antiguo 11-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Hola.

Probado, y funciona.
Un poco rollo buscar las clases a modificar, pero ya está.

Salu2.
Responder Con Cita
  #13  
Antiguo 11-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Hola.

Probado, y funciona.
Un poco rollo buscar las clases a modificar, pero ya está.

Salu2.
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:
private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}
Responder Con Cita
  #14  
Antiguo 11-02-2025
_Io _Io is online now
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:
private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}

Hola.

Yo utilizo Delphi 12, y en la importación me crea estas propiedades como privadas, por eso lo de la chapucilla.

Sinceramente no sé si en las opciones de importación existe alguna opción para que saque estas propiedades como públicas.

También puede ser, que se pueda acceder a ellas y yo desconozca el cómo

Una Clase de la importación del WDSL:
Código:
  RespuestaBaseType = class(TRemotable)
  private
    FCSV: string;
    FCSV_Specified: boolean;
    FDatosPresentacion: DatosPresentacionType;
    FDatosPresentacion_Specified: boolean;
    FCabecera: CabeceraType;
    FTiempoEsperaEnvio: Tipo6Type;
    FEstadoEnvio: EstadoEnvioType;
    procedure SetCSV(Index: Integer; const Astring: string);
    function  CSV_Specified(Index: Integer): boolean;
    procedure SetDatosPresentacion(Index: Integer; const ADatosPresentacionType: DatosPresentacionType);
    function  DatosPresentacion_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property CSV:               string                 Index (IS_OPTN) read FCSV write SetCSV stored CSV_Specified;
    property DatosPresentacion: DatosPresentacionType  Index (IS_OPTN) read FDatosPresentacion write SetDatosPresentacion stored DatosPresentacion_Specified;
    property Cabecera:          CabeceraType           read FCabecera write FCabecera;
    property TiempoEsperaEnvio: Tipo6Type              read FTiempoEsperaEnvio write FTiempoEsperaEnvio;
    property EstadoEnvio:       EstadoEnvioType        read FEstadoEnvio write FEstadoEnvio;
  end;

Aquí pongo la modificación:

Código:
  RespuestaBaseType = class(TRemotable)
  private
    FCSV: string;
    FCSV_Specified: boolean;
    FDatosPresentacion: DatosPresentacionType;
    FDatosPresentacion_Specified: boolean;
    FCabecera: CabeceraType;
    FTiempoEsperaEnvio: Tipo6Type;
    FEstadoEnvio: EstadoEnvioType;
    procedure SetCSV(Index: Integer; const Astring: string);
    function  CSV_Specified(Index: Integer): boolean;
    procedure SetDatosPresentacion(Index: Integer; const ADatosPresentacionType: DatosPresentacionType);
    function  DatosPresentacion_Specified(Index: Integer): boolean;
  public
    property CSV_Especificada: boolean read FCSV_Specified;
    property DatosPresentacion_Especificada: boolean read FDatosPresentacion_Specified;
  public
    destructor Destroy; override;
  published
    property CSV:               string                 Index (IS_OPTN) read FCSV write SetCSV stored CSV_Specified;
    property DatosPresentacion: DatosPresentacionType  Index (IS_OPTN) read FDatosPresentacion write SetDatosPresentacion stored DatosPresentacion_Specified;
    property Cabecera:          CabeceraType           read FCabecera write FCabecera;
    property TiempoEsperaEnvio: Tipo6Type              read FTiempoEsperaEnvio write FTiempoEsperaEnvio;
    property EstadoEnvio:       EstadoEnvioType        read FEstadoEnvio write FEstadoEnvio;
  end;

Saludos !!!
Responder Con Cita
  #15  
Antiguo 11-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola _Io, en mi caso no he modificado nada de las clases que genera la importación del WSDL y las propiedades Specified son publicas (en c#). Te paso una parte del fichero Reference.cs creado al importar el WSDL:

Código:


private bool macrodatoFieldSpecified;

....

public bool MacrodatoSpecified 
{
   get 
   {
          return this.macrodatoFieldSpecified;
   }
   set 
   {
          this.macrodatoFieldSpecified = value;
          this.RaisePropertyChanged("MacrodatoSpecified");
   }
}
Hola, yo cambio el timestamp a string porque al pasear introducía milisegundos, y daba error al enviar, a ti no te pasa?
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #16  
Antiguo 12-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, yo cambio el timestamp a string porque al pasear introducía milisegundos, y daba error al enviar, a ti no te pasa?
Hola bmfranky, no modifico nada de las clases creadas al importar el wsdl porque sinó lo tendría que hacer cada vez que lo importo

No se exactamente a que propiedades te refieres con esto de los milisegundos, pero supongo que no me ocurre el error porque al rellenar todas las propiedades de fecha ya les doy el formato esperado.

Saludos
Responder Con Cita
  #17  
Antiguo 12-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola bmfranky, no modifico nada de las clases creadas al importar el wsdl porque sinó lo tendría que hacer cada vez que lo importo

No se exactamente a que propiedades te refieres con esto de los milisegundos, pero supongo que no me ocurre el error porque al rellenar todas las propiedades de fecha ya les doy el formato esperado.

Saludos

Hola, buenos dias el parametro FechaHoraUsoGenREgistro es un System.DateTime , si lo paso directamente, me genera el xml, asi:
Código:
 <FechaHoraHusoGenRegistro >2024-10-01T15:05:26.908824+02:00</FechaHoraHusoGenRegistro>

Al enviar daba error de la fecha no correcta.


Código:
<EstadoRegistro>AceptadoConErrores</EstadoRegistro>
<CodigoErrorRegistro>2004</CodigoErrorRegistro>
<DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro>

Como no hay forma de evitarlo por codigo,. lo cambie a string.


Por lo menos en c# VisualStudio 2015, que es la version que yo uso, pero ya te comente que la 2022, es diferente, en muchas cosas.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #18  
Antiguo 12-02-2025
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 416
Poder: 5
rci Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, buenos dias el parametro FechaHoraUsoGenREgistro es un System.DateTime , si lo paso directamente, me genera el xml, asi:
Código:
 <FechaHoraHusoGenRegistro >2024-10-01T15:05:26.908824+02:00</FechaHoraHusoGenRegistro>

Al enviar daba error de la fecha no correcta.


Código:
<EstadoRegistro>AceptadoConErrores</EstadoRegistro>
<CodigoErrorRegistro>2004</CodigoErrorRegistro>
<DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro>

Como no hay forma de evitarlo por codigo,. lo cambie a string.


Por lo menos en c# VisualStudio 2015, que es la version que yo uso, pero ya te comente que la 2022, es diferente, en muchas cosas.
Hola bmfranky, Puedes adaptarlo a lo que necesites:
Código:
DateTime currentDateTime = GetDateTime(); // Coge la fecha y hora de internet o del ordenador

// Convert to Veri*Factu FORMAT EXPECTED: YYYY-MM-DDThh:mm:ssTZD (ej: 2024-01-01T19:20:30+01:00) (ISO 8601)
var creationDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local);

registroFacturacionAlta.FechaHoraHusoGenRegistro = creationDateTime;
Prueba a ver si te sirve, creo que no depende de la versión del VisualStudio que tengas

Saludos
Responder Con Cita
  #19  
Antiguo 12-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Hola bmfranky, Puedes adaptarlo a lo que necesites:
Código:
DateTime currentDateTime = GetDateTime(); // Coge la fecha y hora de internet o del ordenador

// Convert to Veri*Factu FORMAT EXPECTED: YYYY-MM-DDThh:mm:ssTZD (ej: 2024-01-01T19:20:30+01:00) (ISO 8601)
var creationDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local);

registroFacturacionAlta.FechaHoraHusoGenRegistro = creationDateTime;
Prueba a ver si te sirve, creo que no depende de la versión del VisualStudio que tengas

Saludos
Hola, la verdad es que el problema lo tenia al comenzar las pruebas con las primeras versiones del servicio, como puede ver por las fechas, probare a ver sin la modificacion a ver, porque el codigo que me pasa , es una de las formas que prove, entre otras de generar y pasar el timestamp, esa, es igual que crearlo desde un DateTime.now y forzar los mislisegundos a cero.
Como pada poder enviar , tuve que modificar, pues desde entonces he mantenido la modificacion, luego provare a vover atras, total son unas 15/20 lineas de codigo, no mas.

Gracias de todos modos, le digo algo, igual hera un fallo de las primeras versiones de codigo.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #20  
Antiguo 12-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, la verdad es que el problema lo tenia al comenzar las pruebas con las primeras versiones del servicio, como puede ver por las fechas, probare a ver sin la modificacion a ver, porque el codigo que me pasa , es una de las formas que prove, entre otras de generar y pasar el timestamp, esa, es igual que crearlo desde un DateTime.now y forzar los mislisegundos a cero.
Como pada poder enviar , tuve que modificar, pues desde entonces he mantenido la modificacion, luego provare a vover atras, total son unas 15/20 lineas de codigo, no mas.

Gracias de todos modos, le digo algo, igual hera un fallo de las primeras versiones de codigo.

Pues algo han cambiado, porque ahora si funciona, pues nada, maquina aban....
Gracias.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
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
como leer datos enviados por COM3 ( TurboPower Async Professional.) Racso2006 Varios 18 07-11-2018 12:06:58
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo rmeckbell Desarrollo en Delphi para Android 6 26-06-2017 18:24:20
Como leer los datos de un UPS kurono Varios 5 20-02-2012 09:23:51
Cómo puedo leer los datos de este xml!! bone Varios 16 23-02-2011 17:29:49


La franja horaria es GMT +2. Ahora son las 16:09:52.


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