ARRAY FARMACIA POPULAR

PAULOCASTROCRUZ 12/02/2012 21:59:24
#394542
Caros amigos, estou com um problema aqui em um codigo de autorização da farmacia popular, o array está sempre pegando o último valor, por exemplo, se o prrimeiro código de barras é 123, e no array eu incluir 5 produtos, todos os 5 vão estar com o mesmo código.

Segue abaixo um exemplo do codigo que estou usando, se alguém já passou por isso ou tem alguma idéia que possa ajudar, fico grato


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim solicitacaoDTO As New fpopular.SolicitacaoDTO()

Dim medicamentos As List(Of fpopular.MedicamentoDTO) = New List(Of fpopular.MedicamentoDTO)()
Dim medicamento As fpopular.MedicamentoDTO = New fpopular.MedicamentoDTO()
medicamento.coCodigoBarra = [Ô]7899095200067[Ô]
[ô]CAPOX
ReDim solicitacaoDTO.arrMedicamentoDTO(2)
medicamento.qtSolicitada = 30
medicamento.vlPrecoVenda = 8.4
medicamento.qtPrescrita = 1
solicitacaoDTO.arrMedicamentoDTO(0) = medicamento

medicamento.coCodigoBarra = [Ô]7899095209999[Ô]
[ô]CAPOX
medicamento.qtSolicitada = 30
medicamento.vlPrecoVenda = 8.4
medicamento.qtPrescrita = 1
solicitacaoDTO.arrMedicamentoDTO(1) = medicamento


MsgBox(solicitacaoDTO.arrMedicamentoDTO(0).coCodigoBarra)
MsgBox(solicitacaoDTO.arrMedicamentoDTO(1).coCodigoBarra)


End Sub
EDUFS 13/02/2012 14:12:47
#394587
Resposta escolhida
Da uma olhada nisso. Ve se ajuda..

my1DArray = Array.CreateInstance(GetType(WebReference.MedicamentoDTO), i) [ô]Instancia o array com 3 posições
NItem = 0
rs1.MoveFirst()

Do While NItem < i
my1DArray(NItem) = New WebReference.MedicamentoDTO
my1DArray(NItem).coCodigoBarra = rs1([Ô]Med_EAN[Ô]).Value
my1DArray(NItem).qtPrescrita = rs1([Ô]Med_Qtd_Prescrita[Ô]).Value
my1DArray(NItem).qtSolicitada = rs1([Ô]Med_Qtd_Solicitada[Ô]).Value
my1DArray(NItem).vlPrecoVenda = rs1([Ô]Med_Preco_Transmis[Ô]).Value
ReDim Preserve Solicitacao.arrMedicamentoDTO(NItem) [ô]Cria um array e preserva os dados existente
Solicitacao.arrMedicamentoDTO(NItem) = my1DArray(NItem) [ô] insere o array de medicamentos dentro do novo espaço criado
rs1.MoveNext()
NItem = NItem + 1
Loop
PAULOCASTROCRUZ 15/02/2012 16:16:15
#394826
Caro amigo!!!
Vc é o mió do Goiás!!!
Deu certinho, o caso era o redim preserve....
Valeu!!!!
Tópico encerrado , respostas não são mais permitidas