Hola estoy intrigado con el uso de la clase. Les explico, utilizó mucho esta clase y ningún problema. Uno de los usos que le doy es el de cargar los browses con esta. Bueno hasta aquí no hay problema. Pero hoy quise hacer lo mismo pero con la diferencia que la clase la database la hago en una función principal y el browse lo llamo en otra función en el mismo prg. El problema es que no me muestra nada en el browse. Ahora si abro la base de datos en la función secundaria(en este caso function provee(olbx,lnuevo,oMae)) funciona perfectamente. Alguien sabe el porque de este comportamiento??
Uso fwh 2.6 xharbour 99.61 y borland
Luis
Ejemplo ( no funciona )
FUNCTION Brwprove //principal del programa
LOCAL oLbx
LOCAL oDlg, oSplit := array(2)
LOCAL oRadioButton
LOCAL nOrden:=1
LOCAL onbut := array(6)
LOCAL surge
LOCAL oMae
Local cTitulo := "Listado de proveedores locales"
LOCAL aObj := array(0)
LOCAL oBanpro
if !pasaje("banprove");eturn nil;endif
DATABASE oBanpro
oBanpro:setorder(1)
oBanpro:beof:={||nil}
ETC ETC ETC
REDEFINE BTNBMP oNbut[1] id 102 of oDlg resource "btnagregar","btnagrega1" ACTION provee( oLbx, .T.,oMae,oBanpro ) NOBORDER
*//////////////////////////////////////////////////////////////////*
function provee(olbx,lnuevo,oMae,obanpro)
bla bla bla
REDEFINE LISTBOX oBrw ;
FIELDS (obanpro:calias)->banco, (obanpro:calias)->cbu FIELDSIZES 190,120;
HEADERS "BANCO", "CBU" ID 102 of oFold:adialogs[3] UPDATE
oBrw:bSkip = { | nRecs | obanpro:Skipper( nRecs ) }
oBrw:nLineStyle := 3
oBrw:nClrBackFocus := CLR_CYAN
oBrw:nClrForeFocus := CLR_WHITE
////////////////////////////////////////////////////////////////////
En cambio así sí funciona
FUNCTION Brwprove //principal del programa
LOCAL oLbx
LOCAL oDlg, oSplit := array(2)
LOCAL oRadioButton
LOCAL nOrden:=1
LOCAL onbut := array(6)
LOCAL surge
LOCAL oMae
Local cTitulo := "Listado de proveedores locales"
LOCAL aObj := array(0)
LOCAL oBanpro
ETC ETC ETC
REDEFINE BTNBMP oNbut[1] id 102 of oDlg resource "btnagregar","btnagrega1" ACTION provee( oLbx, .T.,oMae) NOBORDER
ETC ETC ETC
*//////////////////////////////////////////////////////////////////*
function provee(olbx,lnuevo,oMae)
if !pasaje("banprove");eturn nil;endif
DATABASE oBanpro
oBanpro:setorder(1)
oBanpro:beof:={||nil}
bla bla bla
REDEFINE LISTBOX oBrw ;
FIELDS (obanpro:calias)->banco, (obanpro:calias)->cbu FIELDSIZES 190,120;
HEADERS "BANCO", "CBU" ID 102 of oFold:adialogs[3] UPDATE
oBrw:bSkip = { | nRecs | obanpro:Skipper( nRecs ) }
oBrw:nLineStyle := 3
oBrw:nClrBackFocus := CLR_CYAN
oBrw:nClrForeFocus := CLR_WHITE