Pegar conteudo de um objeto com array.

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Pegar conteudo de um objeto com array.

Mensagem 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.
Marcos Roberto
NetService Software
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pegar conteudo de um objeto com array.

Mensagem por alxsts »

Olá!

Mas como identificar o item selecionado no combobox?
[]´s
Alexandre Santos (AlxSts)
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Pegar conteudo de um objeto com array.

Mensagem 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
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Pegar conteudo de um objeto com array.

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Pegar conteudo de um objeto com array.

Mensagem 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.
Marcos Roberto
NetService Software
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Pegar conteudo de um objeto com array.

Mensagem 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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Pegar conteudo de um objeto com array.

Mensagem 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.
Marcos Roberto
NetService Software
Responder