Preencher com dados do dbf em um combobox

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

Preencher com dados do dbf em um combobox

Mensagem por marcos.gurupi »

Como eu faco no exemplo abaixo preencher os dados de um combobox com os dados de um dbf?

iEmpAtiva:={"EMPRESA 1","Empresa 2","Empresa 3"}

@ 18,15 GET COMBOBOX oEmpAtiva VAR vEmpAtiva ITEMS iEmpAtiva SIZE 655,300 STYLE CBS_UPPERCASE COLOR 255 FONT HFont():Add( 'Courier New',0,-13,700,,,)

Marcos Roberto
Marcos Roberto
NetService Software
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Preencher com dados do dbf em um combobox

Mensagem por Toledo »

Marcos, basta adicionar na matriz o campo com o nome das empresas, por exemplo:

Código: Selecionar todos

DO WHILE !EOF()
  AADD(iEmpAtiva,EMPRESA)
  SKIP
ENDDO
EMPRESA é nome do campo do DBF onde está o nome da empresa.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Preencher com dados do dbf em um combobox

Mensagem por sygecom »

Ou em tempo de execução:

Código: Selecionar todos

********************************************
FUNCTION RECARREGA_COMBO_UF(vP1,oOBJ,aARRAY)
********************************************
Local aItens_CID_TEMP:=CARREGA_CIDADES_UF(vP1)
DO WHILE .T.
   FOR nI := 1 TO Len(aARRAY)
      ADel( aARRAY, nI, .T. )
   NEXT
   IF Len(aARRAY) <= 0
      EXIT
   ENDIF
ENDDO
FOR nI := 1 TO Len(aItens_CID_TEMP)
   AADD(aARRAY,aItens_CID_TEMP[nI,1])
NEXT
IF LEN(aARRAY) > 0
   oOBJ:aItems:= aARRAY
   oOBJ:Requery()
   oOBJ:Setitem(1)
ENDIF
Return(aARRAY)
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: Preencher com dados do dbf em um combobox

Mensagem por marcos.gurupi »

Obrigado amigos!!

Marcos Roberto.
Marcos Roberto
NetService Software
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Preencher com dados do dbf em um combobox

Mensagem por esbasso »

a combobox tem suporte direto ao campo do dbf, basta apenas colocar o nome do campo com alias na frente

@ 18,15 GET COMBOBOX oEmpAtiva VAR vEmpAtiva ITEMS {"empresa->campo"} SIZE 655,300 STYLE CBS_UPPERCASE COLOR 255 FONT HFont():Add( 'Courier New',0,-13,700,,,)

ou ainda

@ 18,15 GET COMBOBOX oEmpAtiva VAR vEmpAtiva ITEMS {"cidades->cidade","cidades-codigo"} SIZE 655,300 STYLE CBS_UPPERCASE COLOR 255 FONT HFont():Add( 'Courier New',0,-13,700,,,)

cria a combobox com array de 2 colunas podendo ser pego o valor do codigo ,apesar de se mostrar as cidades

exemplo
SUPONDO QUE O ARQUIVO CIDADES TENHA UM INDICE POR ESTADO

FUNCTION cidades

LOCAL, vCombo1 := 1, vCombo2 := 1
LOCAL oCombo1, oCombo2 , oLabel2, oLabel3

DBSELECTAREA('cidades')
DBSETORDER(1)
DBSEEK("RS")
ORDSCOPE(0,"RS")
ORDSCOPE(1,"RS")
DBGOTOP()


@ 182,110 SAY oLabel2 CAPTION "UF:" SIZE 28,19
@ 219,107 GET COMBOBOX oCombo2 VAR vCombo2 ;
ITEMS {[RS],"SC","PR"} TEXT ;
SIZE 82,23 ;
ON CHANGE {|value,This| oCombo2_onChange( value,This ) } ;
ON INIT {|This| THIS:LTEXT:=.T. }
@ 151,139 SAY oLabel3 CAPTION "Cidades:" SIZE 61,19
@ 221,136 GET COMBOBOX oCombo1 VAR vCombo1 ;
ITEMS {[cidades->cidade]} ;
SIZE 299,23 DISPLAYCOUNT 20

ACTIVATE DIALOG oDlg


STATIC FUNCTION oCombo2_onChange( value,This )

DBSEEK(THIS:VALUE)
ORDSCOPE(0,THIS:VALUE)
ORDSCOPE(1,THIS:VALUE)
GO TOP
ThisForm:oCombo1:REQUERY()

RETURN Nil
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
Responder