Página 1 de 1
Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 09:45
por marcos.gurupi
Caros, eu alimentei uma array com o banco de dados e agora quero pegar o q o usuario escolheu e gravar no banco de dados. Como faco?
Aqui o usuario escolhe a marca:
Código: Selecionar todos
@ 219,34 GET COMBOBOX oMarca VAR vMarca ITEMS iMarca ON INIT {||AlimentaMarca()} SIZE 110,23
Estou alimentando a array assim:
Código: Selecionar todos
Static Function AlimentaMarca()
Local Areant:=Select()
Local aitems:={}
select 18
ordsetfocus(1)
ordscope(0,"P")
ordscope(1,"P")
dbgotop()
DO WHILE !EOF()
aadd(aitems,Nome)
DBSKIP()
ENDDO
oMarca:aitems:=aitems
//iMarca:={aItems}
ordscope(0,Nil)
ordscope(1,Nil)
Select(Areant)
RETURN .T.
Como faco para pegar o conteudo e gravar na tabela?
Marcos Roberto.
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 10:17
por alxsts
Olá!
Mas como identificar o item selecionado no combobox?
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 12:47
por esbasso
Jesus, é um objeto
Pegar o item selecionado é o minimo que este objeto teria de retornar
oMarca:value retorna o item selecionao indice numerico do array
oMarca:DisplayValue retorna o texto do indice do array
imarca retorna o item selecionado
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 14:59
por alxsts
Olá!
O motivo é simples: não conheço essa tecnologia e quero aprender.
esbasso escreveu:oMarca:value retorna o item selecionao indice numerico do array
oMarca:DisplayValue retorna o texto do indice do array
A resposta do colega Esbasso ficou clara para mim. Imagino que o array contenha as opções e, sendo um combobox, deveria haver um método de se conhecer a opção selecionada. Aliás, essa foi a pergunta do tópico.
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 21:54
por marcos.gurupi
Com o exemplo do Fernando estah retornando o seguinte erro:
Código: Selecionar todos
Error BASE/1004 Message not found: HCOMBOBOX:DISPLAYVALUE
Called from tobject.prg->HCOMBOBOX:ERROR(172)
Called from tobject.prg->HCOMBOBOX:MSGNOTFOUND(205)
Called from tobject.prg->HCOMBOBOX:DISPLAYVALUE(0)
Called from PNEUS.PRG->INCLUIR(226)
Eu quero gravar na tabela o que o usuario escolher no combobox.
Replace Marca with oMarca:DisplayValue
Tentei assim tb.
MsgInfo(oMarca:DisplayValue)
Marcos Roberto.
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 22:17
por sygecom
Olá Marcos,
O mais indicado é assim:
Seu combo:
@ 219,34 GET COMBOBOX oMarca VAR vMarca ITEMS iMarca ON INIT {||AlimentaMarca()} SIZE 110,23 TEXT;
DISPLAYCOUNT 27
TOOLTIP 'Selecione a Marca'
Para pegar o que está no Combo:
MsgInfo(vMarca)
ou
MsgInfo(thisform:oMarca:GetText()) // não tenho certeza
ou
MsgInfo(iMarca[oMarca])
Uma dessas acima deve dar, espero que seja isso que está procurando, o DISPLAYCOUNT serve apenas para você dizer na COMBOBOX de quantos item será visíveis de arrancada até criar a barra de rolagem.
Re: Pegar conteudo de um objeto com array.
Enviado: 16 Abr 2010 22:47
por marcos.gurupi
Observe a mensagem do Leonardo como eh explicativa. Eu tenho certeza que ele nao precisa disso mas faz...
obrigado Eric vc tem a humildade dos sabios. A proposito com o vMarca eu nao consegui o conteudo selecionado.
E vamos ao que interessa. Leonardo o exemplo abaixo deu certo.
MsgInfo(thisform:oMarca:GetText())
Obrigado.
Marcos Roberto.