Ver Mensaje Individual
  #16  
Antiguo 02-09-2011
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Reputación: 22
apicito Va por buen camino
[SOLUCIONADO] Como leer un TRemotable que proviene de un webservice Responder a Tema

Después de horas y horas intentando hacer cosas distintas, pero casi siempre haciendo lo mismo, he conseguido solucionar el problema de la lectura de TRemotable.
[SOLUCION] Descargarme la última versión de Delphi XE2 trial y funcionó a la primera. Osea que es un defecto de las versiones anteriores de delphi.
Gracias por la colaboración. Especialmente a Egostar por el tiempo que le dedicó a mi problema.

Codigo:
Unit generada por wsImporter:
Código Delphi [-]
  registroBean         = class;                 { "http://xxxxxxx.es/"[GblCplx] }

  getListaRegistrosResponse = array of registroBean;   { "http://xxxx.es/"[Lit][GblCplx] }

  registroBean = class(TRemotable)
  private
    Fasunto: string;
    Fasunto_Specified: boolean;
    FcorreoElectronico: string;
    FcorreoElectronico_Specified: boolean;
    .......

  ConsolidacionWS = interface(IInvokable)
  ['{8796BA36-EF66-FC3D-8199-9C6A7C27E916}']
    function  getEstado(const entidad: string): string; stdcall;
    function  getListaRegistros(const entidad: string): getListaRegistrosResponse; stdcall;
    function  resetFechaRegistrosEntrada: string; stdcall;
  end;

function GetConsolidacionWS(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ConsolidacionWS;
La unit que usa lo anterior:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
    Consultas: ConsolidacionWS;
    Lista: getListaRegistrosResponse;
    Entidad: string;
begin
  Entidad := '004';
  Consultas := GetConsolidacionWS(true,'',nil);
  memo1.Lines.Add('======================================');
  Lista := Consultas.getListaRegistros(Entidad);
  for i := 0 to High(Lista) do begin
    //:::::::
    memo1.Lines.Add(lista[i].nombre);
    //:::::::
  end;
  memo1.Lines.Add('---------------------------------------');
end;

Última edición por apicito fecha: 02-09-2011 a las 19:44:34.
Responder Con Cita