DBCombo no refresca items agregados

DBCombo no refresca items agregados

Postby MarioG » Mon Jul 03, 2006 8: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)
Code: Select all  Expand view  RUN
   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:
Code: Select all  Expand view  RUN
   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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Postby Manuel Valdenebro » Mon Jul 03, 2006 9:14 pm

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

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby MarioG » 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Postby R.F. » Tue Jul 04, 2006 5: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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby RenOmaS » Tue Jul 04, 2006 6:30 pm

Agrega este methodo a DbCombo.prg
Code: Select all  Expand view  RUN
METHOD Update() CLASS TDBCombo
   Local bChange:= ::bChange

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

   ::bChange := bChange

   Return NIl


despues es solo hace

oCmb:Update)

Saludos
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Postby Antonio Linares » Tue Jul 04, 2006 7:21 pm

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42149
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby MarioG » 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests