Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 1590 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á 1590 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...