FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour DBCombo no refresca items agregados
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM

DBCombo no refresca items agregados

Posted: Mon Jul 03, 2006 08:20 PM
Hola gente:
En un Dlg tengo un DBCombo y un Button que acceder a una función para agregar/modificar la lista desplegada en el DBCombo. El problema es que luego de agregado/modificado un registro la lista no se refresca.
El código es el siguiente (utilizo tDbf)
   REDEFINE DBCOMBO     ::aoDlg[_Cmb03] VAR cProfesion ID 223 UPDATE OF oFld:aDialogs[2] ;
            ALIAS       ::aoDbF[_PROF]:cAlias ;
            ITEMFIELD   "ID_Prof"   ;
            LISTFIELD   "Desc_Prof" 
            
   REDEFINE BTNBMP  ID 290 OF oFld:aDialogs[2] ;
            RESNAME "" ;
            TOOLTIP "Agregar Profesional" ;
            ACTION  oSelf:LstProfesion()         , ;
                    oSelf:aoDlg[_Cmb03]:ReFill(), ;
                    oSelf:aoDlg[_Cmb03]:Refresh()


Posteriormente probé lo siguiente:
   REDEFINE DBCOMBO     ::aoDlg[_Cmb03] VAR cProfesion ID 223 UPDATE OF oFld:aDialogs[2] ;
            ALIAS       ::aoDbF[_PROF]:cAlias ;
            ITEMFIELD   "ID_Prof"   ;
            LISTFIELD   "Desc_Prof" 
            
   REDEFINE BTNBMP  ID 290 OF oFld:aDialogs[2] ;
            RESNAME "" ;
            TOOLTIP "Agregar Profesional" ;
            ACTION  if( oSelf:LstProfesion( @cProfesion )         , ;
                        oSelf:aoDlg[_Cmb03]:Insert( cProfesion )  , ;
                        oSelf:aoDlg[_Cmb03]:Modify( cProfesion ) ), ;
                    oSelf:aoDlg[_Cmb03]:ReFill(), ;
                    oSelf:aoDlg[_Cmb03]:Refresh()


Al desplegar la lista, en ninguno de los casos el registro agregado/modificado, se visualiza en su nuevo estado.

Que estoy haciendo mal? (Uso FWH 2.6May05)

gracias desde ya, Saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM

DBCombo no refresca items agregados

Posted: Mon Jul 03, 2006 09:14 PM

¿ Has probado cambiar REfresh() por Update() ?

Un saludo



Manuel
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM

DBCombo no refresca items agregados

Posted: Tue Jul 04, 2006 12:56 AM

Gracias por responder
De la unica forma que agrega es haciendo: oCmb:Add( cDato ), luego oCmb:Update(). El valor se agrega al final de la lista
Aunque la ayuda dice lo que hacen ::Insert(), ::Modify(), ::Refill(); ninguno de ello hace lo que dice hacer...salvo que no entienda el concepto

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM

DBCombo no refresca items agregados

Posted: Tue Jul 04, 2006 05:22 PM

Pues va a ser que no.

El DBCombo llena sus items a partir del contenido de una base de datos, eso lo hace en elmetodo constructor del control y a partir de ahi se convierte en un combo normal, sin ninguna relacion con la base de datos, es decir, no se actualiza cuando el DBF cambia.

Lo que tienes que hacer y eso manualmente, es volver a hacer un barrido de la base de dato, rellenando un nuevo array y luego con el metodo ::SETITEMS() cargar los valores nuevos.

Saludos

R.F.
Posts: 205
Joined: Fri Oct 07, 2005 05:07 PM

DBCombo no refresca items agregados

Posted: Tue Jul 04, 2006 06:30 PM
Agrega este methodo a DbCombo.prg
METHOD Update() CLASS TDBCombo
   Local bChange:= ::bChange

   ::bChange:= Nil
   ::Reset()
   ::Fill()
   ::Default()

   ::bChange := bChange

   Return NIl


despues es solo hace

oCmb:Update)

Saludos
Saludos/regards

RenOmaS



skype: americo.balboa
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

DBCombo no refresca items agregados

Posted: Tue Jul 04, 2006 07:21 PM

Gracias por la aportación, lo añadimos a la clase :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM

DBCombo no refresca items agregados

Posted: Tue Jul 04, 2006 11:01 PM

Gente; muchas gracias!
Me alegro que mi consulta sirviera para mejorar la clase! :-)

saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion