database y browse

database y browse

Postby surGom » Sun May 24, 2009 8:51 pm

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
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: database y browse

Postby jrestojeda » Mon May 25, 2009 3:25 am

Hola amigo...
Prueba poner un GoTop en la apertura de la DBF

Code: Select all  Expand view  RUN

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 view  RUN

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
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: database y browse

Postby surGom » Mon May 25, 2009 11:18 am

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
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: database y browse

Postby surGom » Mon May 25, 2009 11:40 am

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
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: database y browse

Postby QAZWSX2K » Mon May 25, 2009 1:57 pm

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
User avatar
QAZWSX2K
 
Posts: 364
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Re: database y browse

Postby surGom » Mon May 25, 2009 3:53 pm

Sí así lo hice yo también, lo que buscaba era saber si alguien tenía una explicación para esto

Un abrazo
Luis
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: database y browse

Postby Carlos Mora » Mon May 25, 2009 6:17 pm

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
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
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: database y browse

Postby surGom » Mon May 25, 2009 7:22 pm

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
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: database y browse

Postby ADBLANCO » Tue May 26, 2009 8:13 pm

Prueba con :

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
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: database y browse

Postby surGom » Tue May 26, 2009 10:55 pm

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
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm


Return to FiveWin para Harbour/xHarbour

Who is online

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