database y browse
database y browse
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
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
- jrestojeda
- Posts: 601
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Re: database y browse
Hola amigo...
Prueba poner un GoTop en la apertura de la DBF
Y el LISTBOX sin el Alias.
Espero te sirva.
Saludos,
Prueba poner un GoTop en la apertura de la DBF
Code: Select all | Expand
if !pasaje("banprove");eturn nil;endif
DATABASE oBanpro
oBanpro:setorder(1)
oBanpro:beof:={||nil}
oBanpro:GoTop()
Y el LISTBOX sin el Alias.
Code: Select all | Expand
REDEFINE LISTBOX oBrw ;
FIELDS oBanpro:banco, oBanpro:cbu;
FIELDSIZES 190,120;
HEADERS "BANCO", "CBU" ID 102 of oFold:adialogs[3] UPDATE
Espero te sirva.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Re: database y browse
Sí así lo hago en otra parte ya que hago un filtro de la base para que me muestre sólo los registros del proveedor consultado. Me parece que el problema está en declarar al browse como local, voy a probar en declararlo como estático
Luis
Luis
Re: database y browse
Bueno acabo de probar y tampoco me funciona... Lo voy a dejar así como está es decir abrir cada vez que consulto un proveedor abriendo la base de datos y cerrandola cuando salgo de la rutina. No es lo correcto pero funciona.
Cuando empezé a programar alguien dijo si funciona no lo toques. No es mi gusto pero estuvedos horas con esto y no hubo caso
Cuando empezé a programar alguien dijo si funciona no lo toques. No es mi gusto pero estuvedos horas con esto y no hubo caso
Re: database y browse
he tenido ese problema antes y lo resolvi pasando el objeto database al programa que hace el browse
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Re: database y browse
Sí así lo hice yo también, lo que buscaba era saber si alguien tenía una explicación para esto
Un abrazo
Luis
Un abrazo
Luis
-
- Posts: 989
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: database y browse
Una pregunta... Estas seguro que cuando declaras DATABASE oBanPro está seleccionada la dbf que quieres? Que pasa si ponemos un ? Alias() justo antes del DATABASE oBanPro?
Un saludo
Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Re: database y browse
Carlos así la declaro
if !pasaje("banprove");return nil;endif
DATABASE oBanpro
oBanpro:setorder(1)
oBanpro:beof:={||nil}
Lo extraño que si lo declaro en el primer prg y luego lo paso como variable de la segunda función, no muestra nadaen el browse, (probé llamando un msg y sí me muestra un registro en la segunda función). Si tal cual está arriba lo declaro en la segunda función no hay problemas
Luis
if !pasaje("banprove");return nil;endif
DATABASE oBanpro
oBanpro:setorder(1)
oBanpro:beof:={||nil}
Lo extraño que si lo declaro en el primer prg y luego lo paso como variable de la segunda función, no muestra nadaen el browse, (probé llamando un msg y sí me muestra un registro en la segunda función). Si tal cual está arriba lo declaro en la segunda función no hay problemas
Luis
Re: database y browse
Prueba con :
REDEFINE BTNBMP oNbut[1] id 102 of oDlg resource "btnagregar","btnagrega1" ACTION eval({|| provee( oLbx, .T.,oMae,oBanpro )}) NOBORDER
REDEFINE BTNBMP oNbut[1] id 102 of oDlg resource "btnagregar","btnagrega1" ACTION eval({|| provee( oLbx, .T.,oMae,oBanpro )}) NOBORDER
Saludos
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Re: database y browse
Angel tampoco funciona. Hice un montón de pruebas y no sigue sin funcionar pasando como variable la base. Si la base la abro en el misma función que declaro el browse funciona.
Gracias
Luis
Gracias
Luis