Combobox para llenar DBf

Combobox para llenar DBf

Postby Compuin » Fri Dec 02, 2011 5:01 pm

Buenas tardes,

Alguno de ustedes me podria ayudar con esto: Necesito llenar un campo de una Dbf desde un Combobox. Ya intente usar el DBCombo pero debo crear una DBf para sus valores. La idea es cargar los valores del Combobox desde un array y tambien que permita visualizar el registro ya cargado al momento de modificar.

Atento a sus comentarios
Last edited by Compuin on Tue Dec 06, 2011 12:07 pm, edited 1 time in total.
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Combobox para llemar DBf

Postby fernandomoralesdr » Tue Dec 06, 2011 10:09 am

local aMeses := {"Enero", "Febrero", "Marzo", ...}, oCbx, cMes := ""

REDEFINE COMBOBOX oCbx VAR cMes ITEMS aMeses ID ID_MES OF oDlg
...

if lSave
ARCHIVO->CAMPO := cMes
Un saludo,
Fernando
Las Palmas de Gran Canaria
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Re: Combobox para llenar DBf

Postby Compuin » Tue Dec 06, 2011 12:07 pm

MIl gracias!!!
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Combobox para llemar DBf

Postby MarioG » Tue Dec 06, 2011 12:22 pm

Compuin;
Si entiendo tu consulta, lo hago así:

Code: Select all  Expand view

   REDEFINE DBCOMBO aO[_CmbM2] VAR cIDDoc ID 101 OF aO[_DlgM] UPDATE ;
            ALIAS     ::oDbTDoc:cAlias ;
            ITEMFIELD "FDOC01"         ;
            LISTFIELD "FDOC02"         ;
            ON CHANGE ...

// Boton para agregar registros a la DBF que muestra el DBcombo
   REDEFINE BTNBMP aO[_BtDocs] ID 520 OF aO[_DlgM] NOBORDER ;
            RESOURCE "bmp_AbreTb1"  ;
            TOOLTIP  "Abre Tabla Tipo de Documentos" ;
            ACTION   if( !Empty( cDescAdic:= oSelf:TbAdicionales( _TBDOCTIPO ) ), aO[_CmbM2]:Update(), )   // Aca llamo a una rutina con un Browse q despliega las descripciones mostradas en el DBCombo
// Luego, con los botones "Agrega/Edita", de esta rutina, habro un Dlg donde agrego/edito, segun la necesidad, a la DBF.
// Al volver actualizo el DBCombo con aO[_CmbM2]:Update() y aO[_CmbM2]:Refresh()
 

y se vé así:
Image
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Combobox para llenar DBf

Postby Compuin » Tue Dec 06, 2011 12:33 pm

Gracias MarioG,
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Uso de DbCombo.

Postby fernandomoralesdr » Tue Dec 06, 2011 3:20 pm

Hola.
Vamos, a ver, en un entorno de tablas, el uso de dbCombo sólo es comprensible siempre y cuando mantengas un número pequeño de registros. ¿Por qué? Porque te los carga en un array. Si tengo 10 ó 20 registros en la tabla, pues bien, pero cuando tienes 800, 1000 o 5000 registros no es comprensible su uso. Además, siempre que añadas o elimines un registro debes borrar y recargar la tabla para que lo mostrado sea lo real.
En definitiva, si tienes que darle al usuario la opción a elegir, te creas una ventana con un browse de la tabla y santas pascuas.
Otra cosa que echo en falta es el uso de la notación húngara en los nombres de variables, funciones, etc.
Un saludo,
Fernando
Un saludo,
Fernando
Las Palmas de Gran Canaria
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Re: Combobox para llenar DBf

Postby Compuin » Tue Dec 06, 2011 3:59 pm

En el caso que me presentas el combobox agrega al campo de la dbf el valor del array (Seria la rutina de Incluir) . Como puedo cargar desde el dbf al combobox para actualizar?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Combobox para llenar DBf

Postby Patricio Avalos Aguirre » Tue Dec 06, 2011 7:02 pm

Hola

para eso deberas modificar la Clase dbCombo

Code: Select all  Expand view
REDEFINE DBCOMBO aGet[id_tipot]                                                ;
        VAR _tipot                                                                              ;
        ID id_tipot OF PAGE1 UPDATE                                                     ;
        COLOR CLR_BLACK, RGB( 255,255,200)                                              ;
        ALIAS "TABLAS"                                                                          ;
        ITEMFIELD "COD_TABLA"                                                               ;
        LISTFIELD "NOM_TABLA"                                                   ;
        CONDICION ( Tablas->( OrdsetFocus( "NOMTABLA" ) ),;
                        Tablas->( OrdScope( 0, "OTE" ) ),;
                        Tablas->( OrdScope( 1, "OTE" ) ),;
                        Tablas->( AdsSetAof( "sucursal="+str(nSucursal,1) ) ) );
        FINCONDICION ( Tablas->( OrdScope( 0, NIL ) ),;
                        Tablas->( OrdScope( 1, NIL ) ), Tablas->( AdsClearAof() ),;
                        Tablas->( OrdsetFocus( "TIPTABLA" ) )                        )  ;
        FOR Tablas->Nom_Tabla = "Neumaticos";
        NOBLANK
 


si quieres actualizar el dbCombo, solo haces aGet[id_ot]:Update() y te refresca el combo con los datos actualizados
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

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