FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour DbCombo Fwh no funcina
Posts: 71
Joined: Mon Oct 10, 2005 09:24 PM
DbCombo Fwh no funcina
Posted: Sat Nov 12, 2005 02:53 PM

esoy haciendo pruebas y el fwh no funciona dbcombo, hay que hacer algun cambio en el recuros o en la clase.

saludos.
fernando sandoval ruiz

fernando sandoval ruiz
fsandoval@hotmail.com
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
DbCombo Fwh no funcina
Posted: Mon Nov 14, 2005 03:33 PM

Cual el el error que te produce, si colocas un ejemplo a lo mejor te podemos ayudar

Saludos
Patricio

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
Posts: 71
Joined: Mon Oct 10, 2005 09:24 PM
Este es ejemplo donde lo uso.
Posted: Tue Nov 15, 2005 04:45 PM

Function ManArticul( nEvent, oTbM , oDb)
local oDlg
local cTBaja := "ESTA DE ALTA"
local lSave := .f.
Local NumArt :=Space(6)
Local NomArt :=Space(40)
Local GruArt :=space(45)
Local SubgArt:=space(40)
Local UniArt :=Space(30)
Local Costo :=0
Local PVenta :=0
Local Existen:=0
Local TIVA :=0
Local TIEPS :=0
Local Exento :=0
Local TCero :=0
Local Clase :=0
Local oTbGpos,oTbUni,oTbSGpos,oTbCla
Local lExento,LTCero:=.f.
Local oDbGrupos
Local oGetUni, oGetGrupos, oGetSubG, oGet

local nRecNo := oTbM:RecNo()
if nEvent == ID_AMOD
NumArt :=oTbM:xFieldGet(1 )
NomArt :=oTbM:xFieldGet( 2 )
GruArt :=oTbM:xFieldGet(3)
SubGArt:=oTbM:xFieldGet(4)
UniArt :=oTbM:xFieldGet(5)
Costo :=oTbM:xFieldGet(6)
PVenta :=oTbM:xFieldGet(7)
Existen:=oTbM:xFieldGet(8)
TIva :=oTbM:xFieldGet(9)
TIEPS :=oTbM:xFieldGet(10)
Exento :=oTbM:xFieldGet(11)
TCero :=oTbM:xFieldGet(12)
Clase :=oTbM:xFieldGet(13)
endif

if oDb:Used()

DEFINE TABLE oTbGpos NAME "grupos" DATAFIELD ;
ORDER BY 1;
OF oDb

OPEN TABLE oTbGpos
if oTbGpos:lOpened
if oTbGpos:RecCount() > 0
// oTbGpos:Read()
DbCreate( oTbGpos:cName, MyDbStruct( oTbGpos:hResult ) )
DbUseArea( .t.,"DBFCDX", oTbGpos:cName, "GRUPOS" )
DbCreateIndex("grupos","numgpo")
nFldCount := oTbGpos:FieldCount()
oTbGpos:GoTop()
ns := Seconds()
while oTbGpos:FetchRow() // Salta, hace el read pero no controla registro ni pone el eof
// @ 10, 10 SAY "Tratando registro: " + AllTrim( str( ++i ) ) // El pintado es una perdida de tiempo pero entretiene ;-)
DbAppend()
FOR n := 1 TO nFldCount
FieldPut( n, oTbGpos:xFieldGet( n ) )
NEXT
end
DbCommit()
DbGoTop()
// DATABASE oDbGrupos
else
MsgAlert("La Tabla de Grupos esta vacia")
return(.t.)
endif
else
msgAlert("La Tabla de grupos no esta abirta")
return(.t.)
endif

DEFINE TABLE oTbSGpos NAME "subgrupos" DATAFIELD ;
ORDER BY 1;
OF oDb

OPEN TABLE oTbSGpos
if oTbSGpos:lOpened
if oTbSGpos:RecCount() > 0
// oTbGpos:Read()
DbCreate( oTbSGpos:cName, MyDbStruct( oTbSGpos:hResult ) )
DbUseArea( .t.,, oTbSGpos:cName,"SubGrupos" )
DbCreateIndex("subgrupos","numsubgpo")
nFldCount := oTbSGpos:FieldCount()
oTbSGpos:GoTop()
ns := Seconds()
while oTbSGpos:FetchRow() // Salta, hace el read pero no controla registro ni pone el eof
// @ 10, 10 SAY "Tratando registro: " + AllTrim( str( ++i ) ) // El pintado es una perdida de tiempo pero entretiene ;-)
DbAppend()
FOR n := 1 TO nFldCount
FieldPut( n, oTbSGpos:xFieldGet( n ) )
NEXT
end
DbCommit()
DbGoTop()
DATABASE oDbSGrupos
else
MsgAlert("La Tabla de Sub Grupos esta vacia")
return(.t.)
endif
else
msgAlert("La Tabla de Sub grupos no esta abirta")
return(.t.)
endif

DEFINE TABLE oTbUni NAME "unimedidas" DATAFIELD ;
ORDER BY 1;
OF oDb

OPEN TABLE oTbUni
if oTbUni:lOpened
if oTbUni:RecCount() > 0
// oTbGpos:Read()
DbCreate( oTbUni:cName, MyDbStruct( oTbUni:hResult ) )
DbUseArea( .t.,, oTbUni:cName ,"unidades")
DbCreateIndex("unidades","numuni")
nFldCount := oTbUni:FieldCount()
oTbUni:GoTop()
ns := Seconds()
while oTbUni:FetchRow() // Salta, hace el read pero no controla registro ni pone el eof
// @ 10, 10 SAY "Tratando registro: " + AllTrim( str( ++i ) ) // El pintado es una perdida de tiempo pero entretiene ;-)
DbAppend()
FOR n := 1 TO nFldCount
FieldPut( n, oTbUni:xFieldGet( n ) )
NEXT
end
DbCommit()
DbGoTop()
DATABASE oDbUniMed
else
MsgAlert("La Tabla de Unidades esta vacia")
return(.t.)
endif
else
msgAlert("La Tabla de Unidades no esta abirta")
return(.t.)
endif

DEFINE TABLE oTbCla NAME "clases" DATAFIELD ;
ORDER BY 1;
OF oDb

OPEN TABLE oTbCla
if oTbCla:lOpened
if oTbCla:RecCount() > 0
// oTbGpos:Read()
DbCreate( oTbCla:cName, MyDbStruct( oTbCla:hResult ) )
DbUseArea( .t.,, oTbCla:cName, "clases" )
DbCreateIndex("clases","clase")

    nFldCount := oTbCla:FieldCount()
oTbCla:GoTop()
ns := Seconds()
while oTbCla:FetchRow() // Salta, hace el read pero no controla registro ni pone el eof
            // @ 10, 10 SAY "Tratando registro: " + AllTrim( str( ++i ) ) // El pintado es una perdida de tiempo pero entretiene <!-- s;-) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";-)" title="Wink" /><!-- s;-) -->
    DbAppend()
    FOR n := 1 TO nFldCount
        FieldPut( n, oTbCla:xFieldGet( n ) )
    NEXT
end
DbCommit()
DbGoTop()
    DATABASE oDbClase
 else
    MsgAlert("La Tabla de Clasificacion esta vacia")
    return(.t.)
 endif

else
msgAlert("La Tabla de Clasificaion no esta abirta")
return(.t.)
endif

else
MsgAlert("No esta en uso la base de datos de comandas")
endif

MSGINFO( GRUPOS->NOMGPO)

DEFINE DIALOG oDlg RESOURCE "DLGART" TITLE "Mantenimiento de Articulos / " + ;
if( nEvent == ID_AALT, "Altas", "Modificaciones" )

    REDEFINE GET NumArt       ID 101 PICTURE "@K!" WHEN nEvent==ID_AALT ;
             OF oDlg

    REDEFINE GET NomArt       ID 102 PICTURE "@K!" OF oDlg

/
REDEFINE BTNGET oGet VAR GruArt ID 103 RESOURCE "combo" ACTION ( SelGrupo( oGet , 200 , 200 ) , oGet:KeyDown(VK_RETURN, 1)) ;
VALID (if( oDbGrupos:Seek( GruArt ) .and. !empty( GruArt ) , ( oDbGrupos:Load(), .t.) , ;
( MsgInfo( "El Grupo " + AllTrim( GruArt ) + ;
" no existe" ), .f. ))) OF oDlg UPDATE
/
REDEFINE BTNGET oGetSubg VAR SubGArt ID 104 RESOURCE "combo" ACTION ( SelSubGrupo( oGetSubG , 200 , 200 ) , oGetSubG:KeyDown(VK_RETURN, 1)) ;
VALID (if( oDbSGrupos:Seek( SubGArt ) .and. !empty( SUbGArt ) , ( oDbSGrupos:Load(), .t.) , ;
( MsgInfo( "El Sub Grupo " + AllTrim( SUbGArt ) + ;
" no existe" ), .f. ))) OF oDlg UPDATE

REDEFINE BTNGET oGetUni VAR UniArt ID 105 RESOURCE "combo" ACTION ( SelUnidad( oGetUni , 200 , 200 ) , oGetUni:KeyDown(VK_RETURN, 1)) ;
VALID (if( oDbUniMed:Seek( UniArt ) .and. !empty( UniArt ) , ( oDbUniMed:Load(), .t.) , ;
( MsgInfo( "La Unidad de Medida" + AllTrim( UniArt ) + ;
" no existe" ), .f. ))) OF oDlg UPDATE

REDEFINE BTNGET oGetCla VAR Clase ID 112 RESOURCE "combo" ACTION ( SelClase( oGetCla , 200 , 200 ) , oGetCla:KeyDown(VK_RETURN, 1)) ;
VALID (if( oDbClase:Seek( Clase ) .and. !empty( Clase ) , ( oDbClase:Load(), .t.) , ;
( MsgInfo( "La clase " + AllTrim( Clase ) + ;
" no existe" ), .f. ))) OF oDlg UPDATE

    REDEFINE DBCOMBO oGetArt VAR GruArt  ID 103  OF oDLG;
         ALIAS "GRUPOS" ITEMFIELD "NUMGPO" LISTFIELD "NOMGPO"

/*
REDEFINE DBCOMBO SubGArt ID 104 OF oDLG;
ALIAS "subgrupos" ITEMFIELD "NumSubGpo" LISTFIELD "NomSubGpo"

    REDEFINE DBCOMBO  UniArt  ID 105  OF oDLG;
         ALIAS "unidades" ITEMFIELD "NumUni" LISTFIELD "NomUni"

    REDEFINE DBCOMBO  Clase   ID 112  OF oDLG;
         ALIAS "Clases" ITEMFIELD "Clase" LISTFIELD "NomCla"

*/
REDEFINE GET Costo ID 106 PICTURE "9,999.99" OF oDlg
REDEFINE GET PVenta ID 107 PICTURE "9,999.99" OF oDlg
REDEFINE GET TIva ID 108 PICTURE "99.99" OF oDlg
REDEFINE GET TIEPS ID 110 PICTURE "99.99" OF oDlg

    REDEFINE RADIO oExento  VAR Exento ID 109 ,111  OF oDlg WHEN TIva = 0

    REDEFINE BUTTON ID 201 OF oDlg ACTION ( lSave := .t. , DbCloseAll() , oDlg:End())
    REDEFINE BUTTON ID 299 OF oDlg ACTION ( lSave := .f. , DbCloseAll() , oDlg:End())

ACTIVATE DIALOG oDlg CENTER

if lSave
if Exento = 2
TCero =1
else
TCero =0
endif

if TIva >0
TCero=0
Exento=0
endif

if nEvent= ID_AALT
SqlStm="INSERT INTO articul ( NUMART , NOMBRE , NUMGPO, SUBGPO , NUMUNI , COSTO , PREVTA , TASAIVA ,TASAIEPS, EXENTO, TASACERO, CLASE , numcia ) VALUES( "
SqlStm=SqlStm+"'"+alltrim(NumArt)+"','"+alltrim(NomArt)+"','"+alltrim(GruArt)+"','"+alltrim(SubgArt)+"','"+alltrim(UniArt)+"','"+alltrim(Str(Costo))+"','"+alltrim(Str(PVenta))+"','"+alltrim(Str(TIva))+"','"+alltrim(Str(TIEPS))+"','"+alltrim(Str(Exento))+"','"+alltrim(Str(TCero))+"','"+alltrim(Clase)+"','"+ alltrim(Str(LnEmp))+"'"+")"
oTbM:ExecSql( SqlStm )
oTbM:Last():Read()
else
SqlStm="UPDATE articul SET NOMBRE="+"'"+alltrim(NomArt)+"',NUMGPO='"+alltrim( GruArt )+"', SUBGPO='"+alltrim( SubgArt)+"',NUMUNI='"+alltrim( UniArt )+"',COSTO='"+alltrim( Str(Costo))+"',PREVTA='"+alltrim( Str(PVenta))+"',TASAIVA='"+alltrim( Str(TIva))+"',TASAIEPS='"+alltrim( Str(TIEPS))+"',EXENTO='"+alltrim( Str(Exento))+"',TASACERO='"+alltrim( Str(TCero)) +"',numcia='"+alltrim( str(LnEmp))+"'"+" WHERE NUMART='"+alltrim(NumArt)+"'"
oTbM:ExecSql( SqlStm )
oTbM:Last():Read()
endif
endif

return( nil )

fernando sandoval ruiz
fsandoval@hotmail.com
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
DbCombo Fwh no funcina
Posted: Tue Nov 15, 2005 09:17 PM

fSandoval

una de las pregunta que hace la clase es esta

IF (nItem := FIELDPOS( ::cFldItem )) > 0
IF (nList := FIELDPOS( ::cFldList )) > 0

prueba antes del dbcombo

alert( str(Grupos->( fieldpos( "NUMGPO" ) ) )

si te da 0 es por que esta colocando un campo que no existe..

REDEFINE DBCOMBO oGetArt VAR GruArt ID 103 OF oDLG;
ALIAS "GRUPOS" ITEMFIELD "NUMGPO" LISTFIELD "NOMGPO

y ademas yo lo utilizo igual y me funciona ok

espero que te sirva
Saludos

Patricio

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
Posts: 71
Joined: Mon Oct 10, 2005 09:24 PM
Post ni me despliega informacion
Posted: Wed Nov 16, 2005 01:22 PM

Patricio gracias por contestar lo que pasa es que no me presenta la informacion en el dbcombo , ya hice lo que indicaste str(grupos->(fieldpos("NomGpo"))) y efectivamente me indica que es el campos 2, de la tabla.

no se que mas pueda ser.

gracias.
fernando sandoval ruiz

fernando sandoval ruiz
fsandoval@hotmail.com
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
DbCombo Fwh no funcina
Posted: Wed Nov 16, 2005 03:03 PM

Fsandoval

Solo tienes que probar y revisar, a lo mejor el combo del recurso esta muy pequeño, la tabla no tiene registro etc, como anterior dije a mi me funciona bien y exactamente como lo tienes..

espero que te sirva y suerte..

Saludos
Patricio

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
Posts: 71
Joined: Mon Oct 10, 2005 09:24 PM
Patricio gracias por contestar, pero no hace el despliegue
Posted: Thu Nov 17, 2005 03:45 PM

En un principio pense que era eso que comentas, pero lo redimencion el dbcombo y el campo lo reduje, pero sigue sin hacer el despliegue de la informacion.

fernando sandoval ruiz
fsandoval@hotmail.com
Posts: 195
Joined: Sat Oct 22, 2005 01:17 PM
Problemas DBCOMBO
Posted: Mon Dec 12, 2005 03:57 PM

Hola Fernando mi nombres es Oscar Maldonado no se si resolviste tu porblema por que yo tengo el mismo y me gustaria saber si alguien me puede ayudar

Saludos

Oscar

Fwh 23.10, bcc55

Posts: 71
Joined: Mon Oct 10, 2005 09:24 PM
No en ves de usar dbcombo uso tbtnget
Posted: Tue Dec 13, 2005 11:00 PM

Osacr por desgracia no logre solucionar el problema, me presenta el dialogo, pero en el dbcombobox no me presenta nada de informacion, y como el tiempo los tenia encima, mejor utilice el btnget con listbox nadamas le cambie le bitmap.

aprovecho tambien no si ati te marque en el dbctest que "la aplicacion o DLL customer.dll no es una imagen valida de windows"

saludos
fernando sandoval ruiz

fernando sandoval ruiz
fsandoval@hotmail.com

Continue the discussion