Page 1 of 1

Ayuda Combo Box

Posted: Wed Jul 10, 2013 8:05 pm
by macato
Fivewiner

favor alguien me echa una mano... tengo un dialog donde cargo en un combobox datos de direcciones, de un cliente.. lo que necesito es que cuando se cambie de cliente en el mismo dialog.. se refresquen los datos del combobox con los datos del nuevo cliente..


DEFINE Dialog ::oDlg Resource .....
Redefine Get ::oGet[02] VAR ::vRut Id 102 Of ::oDlg picture "@R 99.999.999-!" valid { datos( ::vRut} )

Redefine ComboBox ::oCmb VAR ::vCmb Id 131 Of ::oDlg Items ::aCmb[01] Update

Activate Dialog ::oDlg....

method Datos ()
aqui lleno los nuevos datos del combo....
aadd( ::aCmb, { direccion1, direccion2} )

::oCmb:Update()
::oCmb:Refresh()
return NIL


alguna sugerencia se los agradezco.. llevo un ratotote con esta cosaaa

salu2

Tomas

Re: Ayuda Combo Box

Posted: Wed Jul 10, 2013 8:21 pm
by benjiben143
hola wen dia

oCombomaestro:Setitems(adatos)
oCombomaestro:refresh()


ya que tienes los datos nuevos

ay que agregarlos con ocombomaestro:setitems(adatos)
y luego refrescar

saludos

Re: Ayuda Combo Box

Posted: Wed Jul 10, 2013 9:28 pm
by macato
Hola gracias

lo agregue como indicas

method Datos ()
aqui lleno los nuevos datos del combo....
aadd( ::aCmb, { direccion1, direccion2} )

::oCmb:Setitems(::aCmb)
::oCmb:Refresh()

Return NIL

pero me marca el siguiente error

Application
===========
Path and name: F:\Respaldos\Dropbox\app\FastTackV7.0\Bin\Fast Track 7.0.Exe (32 bits)
Size: 5,342,720 bytes
Time from start: 0 hours 0 mins 14 secs
Error occurred at: 10/07/2013, 17:24:30
Error description: Error BASE/2022 Argument error: ALLTRIM
Args:
[ 1] = A { ... }

Stack Calls
===========
Called from: => ALLTRIM(0)
Called from: COMBOBOX.PRG => (b)TCOMBOBOX:DEFAULT(0)
Called from: => ASCAN(0)
Called from: COMBOBOX.PRG => TCOMBOBOX:DEFAULT(0)
Called from: COMBOBOX.PRG => (b)TCOMBOBOX:TCOMBOBOX(0)
Called from: COMBOBOX.PRG => TCOMBOBOX:SETITEMS(0)
Called from: FT600b.prg => FT600:DATOS(1362) //llamado a linea ::oCmb:Setitems(::aCmb)

Re: Ayuda Combo Box

Posted: Wed Jul 10, 2013 10:51 pm
by benjiben143
hola,
este es un ejemplo funcional

Code: Select all

// This sample shows how to create a Combo Test.

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oCbx, cCbx:="aaa"
   local cItem1 := {"aaa","bbb","ccc"}
   local cItem2 := {"1","2","3"}
   local citem3
   
   citem3:=citem1
   DEFINE DIALOg oDlg title "TestCombo"

    @ 1,  1 combobox oCbx var ccbx items citem3  size 60, 80 of odlg update
   
   
   @ 2, 1 BUTTON "cambiar aa" SIZE 40, 10  OF oDlg action ( citem3:=citem1,  ocbx:setitems(citem3) , ocbx:refresh() )
   @ 3, 1 BUTTON "cambiar 1" SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ocbx:refresh() )
   ACTIVATE DIALOG oDlg CENTERED

return nil

//----------------------------------------------------------------------------//
 

Re: Ayuda Combo Box

Posted: Thu Jul 11, 2013 11:10 am
by jrestojeda
Hola...
Revisa también el método modify() de la clase combo.
Saludos,

Re: Ayuda Combo Box

Posted: Thu Jul 11, 2013 4:50 pm
by benjiben143
hola,,

elproblema es que el combo lo toma como texto y no numerico ,,,, convierte los numeros a texto

y con eso ya no marca error en alltrim la clase combobox


saludos

Re: Ayuda Combo Box

Posted: Fri Jul 19, 2013 3:12 am
by macato
benjiben143 wrote:hola,
este es un ejemplo funcional

Code: Select all

// This sample shows how to create a Combo Test.

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oCbx, cCbx:="aaa"
   local cItem1 := {"aaa","bbb","ccc"}
   local cItem2 := {"1","2","3"}
   local citem3
   
   citem3:=citem1
   DEFINE DIALOg oDlg title "TestCombo"

    @ 1,  1 combobox oCbx var ccbx items citem3  size 60, 80 of odlg update
   
   
   @ 2, 1 BUTTON "cambiar aa" SIZE 40, 10  OF oDlg action ( citem3:=citem1,  ocbx:setitems(citem3) , ocbx:refresh() )
   @ 3, 1 BUTTON "cambiar 1" SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ocbx:refresh() )
   ACTIVATE DIALOG oDlg CENTERED

return nil

//----------------------------------------------------------------------------//
 
funciona bien pero no logro hacer que el nuevo combobox comience desde la posición 1 siempre se inicia en la posición 0, generandome error
asi lo hago pero no funciona????? oCbx:nAt := 1

alguna sugerencia

gracias...

Re: Ayuda Combo Box

Posted: Fri Jul 19, 2013 2:30 pm
by benjiben143
hola buen dia

dale el valor a la variable del combobox

y refresh al objecto de combobox


sas

Re: Ayuda Combo Box

Posted: Fri Jul 19, 2013 2:55 pm
by Antonio Linares
Macato,

Cual es la posición cero ? La primera posición del combobox sería la 1.

Te refieres a que se va a la 2 ?

Tendrias que asignar a ::vCmb el valor del primer elemento del array

Re: Ayuda Combo Box

Posted: Tue Jul 23, 2013 10:17 am
by macato
Gracias
Antonio Linares wrote:Macato,

Cual es la posición cero ? La primera posición del combobox sería la 1.

Te refieres a que se va a la 2 ?

Tendrias que asignar a ::vCmb el valor del primer elemento del array
Antonio,

Efectivamente tendría que ser la posición 1, incluso fuerzo el objeto ::oCmb:nAt := 01 a esa posición, pero aun así en el combobox no se muestran la información del primer dato contenido en el... , la primera información se muestra vacía y a continuación la información del combobox que se genero a partir del array...


DEFINE Dialog ::oDlg Resource .....
Redefine Get ::oGet[02] VAR ::vRut Id 102 Of ::oDlg picture "@R 99.999.999-!" valid { datos( ::vRut} )
Redefine ComboBox ::oCmb VAR ::vCmb Id 131 Of ::oDlg Items ::aCmb[01] Update

Activate Dialog ::oDlg....

method Datos ()
aqui lleno los nuevos datos del combo....
aadd( ::aCmb, { codigo, direccion1, comuna, ciudad } )

::oCmb:setitems(::aCmb[01])
::oCmb:Refresh()
::oCmb:nAt := 01

::oDlg:Update()

return NIL

Re: Ayuda Combo Box

Posted: Tue Jul 23, 2013 3:08 pm
by benjiben143
este es el ejemplo que dependiendo el valor se va a la posicion del combo, si queremos que sea la primera posicion seria
ccbx:=citem2[1] // esto nos indica que ccbx va tener el primer valor
ocbx:refresh() // con esto refrescamos

ya seria validar isi hay datos en la posiscion 1

saludos

abajo el ejemplo


Code: Select all

#include "FiveWin.ch"

//----------------------------------------------------------------------------//


function Main()

   local oDlg, oCbx, cCbx:="aaa"
   local cItem1 := {"aaa","bbb","ccc"}
   local cItem2 := {"1","2","3"}
   local citem3
   
   citem3:=citem1
   DEFINE DIALOg oDlg title "TestCombo"

    @ 1,  1 combobox oCbx var ccbx items citem3  size 60, 80 of odlg update
   
   
   @ 2, 1 BUTTON "cambiar aa" SIZE 40, 10  OF oDlg action ( citem3:=citem1,  ocbx:setitems(citem3) , ccbx:="bbb",ocbx:refresh() )
   @ 3, 1 BUTTON "cambiar 1" SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ccbx:="3",ocbx:refresh() )
   @ 2, 10 BUTTON "primero"   SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ccbx:=citem2[1],ocbx:refresh() )
   ACTIVATE DIALOG oDlg CENTERED

return nil

//---
 
saludos

Re: Ayuda Combo Box

Posted: Tue Jul 23, 2013 7:00 pm
by macato
Ahora funciona perfecto!!! muchas gracias
benjiben143 wrote:este es el ejemplo que dependiendo el valor se va a la posicion del combo, si queremos que sea la primera posicion seria
ccbx:=citem2[1] // esto nos indica que ccbx va tener el primer valor
ocbx:refresh() // con esto refrescamos

ya seria validar isi hay datos en la posiscion 1

saludos

abajo el ejemplo


Code: Select all

#include "FiveWin.ch"

//----------------------------------------------------------------------------//


function Main()

   local oDlg, oCbx, cCbx:="aaa"
   local cItem1 := {"aaa","bbb","ccc"}
   local cItem2 := {"1","2","3"}
   local citem3
   
   citem3:=citem1
   DEFINE DIALOg oDlg title "TestCombo"

    @ 1,  1 combobox oCbx var ccbx items citem3  size 60, 80 of odlg update
   
   
   @ 2, 1 BUTTON "cambiar aa" SIZE 40, 10  OF oDlg action ( citem3:=citem1,  ocbx:setitems(citem3) , ccbx:="bbb",ocbx:refresh() )
   @ 3, 1 BUTTON "cambiar 1" SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ccbx:="3",ocbx:refresh() )
   @ 2, 10 BUTTON "primero"   SIZE 40, 10  OF oDlg  action ( citem3:=citem2,  ocbx:setitems(citem3) , ccbx:=citem2[1],ocbx:refresh() )
   ACTIVATE DIALOG oDlg CENTERED

return nil

//---
 
saludos