Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1502 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite pessoal.

Estou com problema pra resolver, e já cheguei no ponto onde nao sei mais o que tentar.

Preciso passar alguns parametros para um webservice, e na parte dos produtos me pede um array de um tipo definido pelo webservice. Nao sei como passar esses dados. Vou postar as classes abaixo:

Abaixo está a classe que preciso passar os parametros: 

"codigoCliente" é apenas uma string, mas a propriedade "produtos" que é minha dificuldade.

  AutorizacaoRequestV2 = class(BaseConversationData)
  private
    FcodigoCliente: string;
    Fprodutos: ArrayOf_tns1_ProdutoV2;
  public
    destructor Destroy; override;
  published
    property codigoCliente:            string                  read FcodigoCliente write FcodigoCliente;
    property produtos:                 ArrayOf_tns1_ProdutoV2  read Fprodutos write Fprodutos;
  end;

Essa propriedade "ArrayOf_tns1_ProdutoV2" está definido da seguinte forma:

unit AutorizadorV2WS1;

interface

uses ..................

type

ArrayOf_tns1_ProdutoV2 = array of ProdutoV2;

Abaixo está definido a classe "ProdutoV2"

  ProdutoV2 = class(TRemotable)
  private
    FcodigoBarra: Int64;
    Fdescricao: string;
  published
    property codigoBarra:                   Int64    read FcodigoBarra write FcodigoBarra;
    property descricao:                     string   read Fdescricao write Fdescricao;
  end;


Se alguem puder ajudar como passar esses dados, desde já agradeço.

  • Moderadores
Postado

- Use SetLength pra definir o tamanho do array.

SetLength(AutorizacaoRequestV2.produtos, X);

- Use o índice pra informar cada valor.

AutorizacaoRequestV2.produtos[0].codigoBarras := '7894561230123';
AutorizacaoRequestV2.produtos[0].descricao := 'PRODUTO 1';
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Boa tarde, agradeço pela tentativa de ajuda. Um amigo ajudou a solucionar da seguinte forma:

var
  Aut_Req    : AutorizacaoRequestV2;
  Prod_Array : array of ProdutoV2;
  Prod_Req   : ArrayOf_tns1_ProdutoV2;
begin

    Aut_Req   := AutorizacaoRequestV2.Create;

    SetLength(Prod_Array, cdsProd.RecordCount);

    SetLength(Prod_Req, cdsProd.RecordCount);

    cdsProd.First;
    while not cdsProd.Eof do
    begin
      Prod_Array[cdsProd.RecNo -1] := ProdutoV2.Create();

      Prod_Array[cdsProd.RecNo -1].codigoBarra    := 7891211111111
      Prod_Array[cdsProd.RecNo -1].descricao           := 'Produto 1';

      Prod_Req[cdsProd.RecNo -1] := Prod_Array[cdsProd.RecNo -1];

      cdsProd.Next;
    end;

    Aut_Req.produtos                 := Prod_Req;
   // aqui passo os demais parametros e executo a função

end;

 

  • Este tópico foi criado há 1502 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.