Página 1 de 1
Alimentando um combobox
Enviado: 30 Out 2011 21:58
por marcos.gurupi
Alguem consegue ver o que tem de errado na rotina/funcao abaixo?
Código: Selecionar todos
Static Function AlimentaCombobox(Area,ordem,Var,Obj)
Local Areant:=Select()
Local aitems:={}
select(Area)
ordsetfocus(Ordem)
dbgotop()
DO WHILE !EOF()
If Area=1
aadd(aItems,NoMesa)
Else
aadd(aItems,Descricao)
Endif
DBSKIP()
ENDDO
Obj:aItems:=aItems
Select(Areant)
RETURN iif(Area=1,iNoMesa,iHistorico)
Uso com sucesso em outro aplicativo, mas aqui o combobox estah ficando vazio.
Marcos Roberto.
Alimentando um combobox
Enviado: 30 Out 2011 22:03
por Pablo César
Ao final da inclusão faltaria um refresh ?
Alimentando um combobox
Enviado: 30 Out 2011 22:06
por alxsts
Olá!
O fragmento de código não dá uma visão ampla. Não sabemos que tipo de variáveis você usa. Se forem Private, ou se obj for passado por referência, a variável obj:aItens estará carregada. Senão, o retorno da função está esquisito. Retorna duas variáveis que não são tratadas na função.
Alimentando um combobox
Enviado: 30 Out 2011 22:17
por marcos.gurupi
Fiz as alteracoes sugeridas mas ainda o combobox estah retornando vazio. Segue abaixo o codigo mais completo.
Código: Selecionar todos
Private vNoMesa := 1, vGarcom := 1, vQtdPes := 1,iNoMesa:={},iGarcom:={}
Private oNoMesa,oLabel1, oGarcom, oLabel2, oQtdPes, oLabel3, oAbrirMesa
@ 14,45 GET COMBOBOX oNoMesa VAR vNoMesa ITEMS iNoMesa ON INIT {||AlimentaCombobox(1,1,iNoMesa,oNoMesa)} SIZE 110,23
@ 145,45 GET COMBOBOX oGarcom VAR vGarcom ITEMS iGarcom SIZE 155,23
@ 320,45 GET UPDOWN oQtdPes VAR vQtdPes RANGE -9999,9999 INCREMENT 1 SIZE 80,22 STYLE WS_BORDER+ES_RIGHT
@ 429,44 BUTTON oAbrirMesa CAPTION "Abrir Mesa" ON CLICK {||LancarConsumo()} SIZE 136,24 STYLE WS_TABSTOP
ACTIVATE DIALOG oAberMesa
RETURN oAberMesa:lresult
Static Function AlimentaCombobox(Area,ordem,var,Obj)
Local Areant:=Select()
Local aItems:={}
select(Area)
ordsetfocus(Ordem)
dbgotop()
DO WHILE !EOF()
If Alltrim(Situacao)="FECHADA".OR.EMPTY(SITUACAO)
aadd(aItems,StrZero(NoMesa,2))
Endif
DBSKIP()
ENDDO
Obj:aItems:=aItems
Select(Areant)
RETURN aItems
Marcos Roberto.
Alimentando um combobox
Enviado: 30 Out 2011 22:28
por marcos.gurupi
Eu fiz assim:
E o array estah com os valores carregados, entaum eles nao estaum aparecendo no combobox.
Marcos Roberto.
Alimentando um combobox
Enviado: 30 Out 2011 22:34
por alxsts
Marcos,
não é muito a minha praia mas, você não deveria carregar os itens na variável que guarda os itens do combo box (iNoMesa)?
Alimentando um combobox
Enviado: 30 Out 2011 22:45
por marcos.gurupi
Eu jah tentei mas apresenta este erro:
Código: Selecionar todos
Warning BASE/1005 Message not found: HCOMBOBOX:_VAR
Called from source\rtl\tobject.prg->HCOMBOBOX:ERROR(0)
Called from source\rtl\tobject.prg->HCOMBOBOX:MSGNOTFOUND(0)
Called from source\rtl\tobject.prg->HCOMBOBOX:_VAR(0)
Called from C:\PROGS\PRINCIPAL\harbour\EspPaulista\POCKET2\AbrirMesa.prg->ALIMENTACOMBOBOX(45)
Called from C:\PROGS\PRINCIPAL\harbour\EspPaulista\POCKET2\AbrirMesa.prg->(b)ABRIRMESA(17)
Called from source\hcontrol.prg->HCONTROL:INIT(173)
Essa mesma rotina uso com sucesso com xhb 1.0.0 + hwgui 2.17
Agora estou usando o xhb 1.2.1 + hwgui 2.17 acho que pode ser algum bug do xhb
Marcos Roberto
Alimentando um combobox
Enviado: 30 Out 2011 22:54
por marcos.gurupi
Solucao foi dada pelo companheiro Fernando Athayde:
Somente isso!!
Marcos Roberto.