Page 1 of 1

Comportamiento desigual entre xharbour y harbour

PostPosted: Sat Jun 14, 2014 11:42 pm
by surGom
Hola compañeros. A que puede deberse que en xharbour este código se comporta correctamente , me pinta de distinto color aquellos recibos en los cuales los cheques diferidos ya han sido acreditados, y en harbour me muestra el listbox completamente vacío? y se bloquea el programa


Code: Select all  Expand view


....
   REDEFINE LISTBOX oBrw1 fields StrZero( ( oAjuste:cAlias )->ncli, 5 ), ;
      StrZero( ( oAjuste:cAlias )->recibo, 8 ), ;
      ( oAjuste:cAlias )->detalle, ;
      Transform( ( oAjuste:cAlias )->dolar, "@e 999,999.999" ), ;
      Transform( ( oAjuste:cAlias )->importe, "@e 99,999,999.99" )   ID 103 UPDATE;
      ON DBLCLICK  hnotas(  oAjuste, oBrw1 )
       

   oBrw1:aheaders := { "Nº Cliente", "Recibo", "Detalle", "Dólar", "Importe" }
   oBrw1:aColSizes := { 90, 90, 150, 95, 120 }
   oBrw1:aHjustify := {2,2,2,2,2}
   oBrw1:ajustify := {0,0,0,1,1}
   oBrw1:bSkip = {| nRecs | oAjuste:Skipper( nRecs ) }
   oBrw1:nLineStyle := 3
   oBrw1:nClrPane := { || iif(fechache(oAjuste:recibo,oCheque,oBrw1), cColor("verde"), cColor("")) }

etc,etc


STATIC FUNCTION fechache(nRecibo,oCheque,obrw1)
local lverdad := .t.

oCheque:gotop()
if oCheque:seek(nRecibo)
   do
      if oCheque:feccha >= Date()
         lverdad := .f.
      endif
      oCheque:skip()
   until oCheque:recibo != nRecibo
endif
 
obrw1:refresh()
return lverdad
//----------------------------------------------------------------------------//


Luis

Re: Comportamiento desigual entre xharbour y harbour

PostPosted: Sun Jun 15, 2014 12:35 am
by Patricio Avalos Aguirre
hola

por casualidad utilizas la clase twbrowse() de Hernan?

si es correcto, entonces elimina la wbrowse.obj de la libreria fiveh.lib

Re: Comportamiento desigual entre xharbour y harbour

PostPosted: Sun Jun 15, 2014 9:27 am
by surGom
Patricio utilizó la clase de Hernan pero en todos los demás módulos funciona bien, es en esta rutina en particular que falla y temo que mi código no debe ser bueno. Lo puedo resolver antes del wbrowse cargando un array con la función fechache(nrecibo,oCheque,oBrw1) resuelta en el mismo, es decir agregando lverdad como nuevo itmen del array , pero tendrían que comportarse tanto en harbor como xharbour de forma similar ya que no es nada que con clipper no se hiciera.

Se puede hacer algo en la función fechache para que con un mínimo cambio funcione

Saludos

Luis

Re: Comportamiento desigual entre xharbour y harbour SOLUCION

PostPosted: Sun Jun 15, 2014 12:32 pm
by surGom
Probando lo solucioné les muestro una parte mas del código original

Code: Select all  Expand view


********
   IF !pasaje( "ajustes" );RETURN nil;ENDIF
   DATABASE oAjuste
   oAjuste:beof := {|| nil }
   oAjuste:setorder( 1 )
   AAdd( aObj, oAjuste )


  oAjuste:gotop()    
   
   DEFINE DIALOG oDlg resource "Brw_grup"
   oDlg:cCaption := "Notas de Crédito-Débito"



   REDEFINE BTNBMP onbut[ 3 ] id 104 OF oDlg resource "BTNELIMINA", "BTNELIMINA1"  ACTION  BORRO( oBrw1, oAjuste )  NOBORDER
   REDEFINE BTNBMP onbut[ 2 ] id 105 OF oDlg resource "btnsalir", "btnsali1"   ACTION oDlg:End() NOBORDER
   REDEFINE BTNBMP onbut[ 1 ] id 108 OF oDlg resource "btnctacte", "btnctacte1"  ACTION ctacli( oAjuste:ncli,, .F. ) NOBORDER
   REDEFINE BTNBMP onbut[ 4 ] id 107 OF oDlg resource "bt_guardar", "bt_guardar1"  ACTION fguardo( oAjuste, oAjuste1, oBrw1 ) NOBORDER
   REDEFINE BTNBMP onbut[ 5 ] id 106 OF oDlg resource "bt_espera", "bt_espera1"  ACTION fespera( oAjuste1, oDlg ) NOBORDER

   REDEFINE LISTBOX oBrw1 fields StrZero( ( oAjuste:cAlias )->ncli, 5 ), ;
      StrZero( ( oAjuste:cAlias )->recibo, 8 ), ;
      ( oAjuste:cAlias )->detalle, ;
      Transform( ( oAjuste:cAlias )->dolar, "@e 999,999.999" ), ;
      Transform( ( oAjuste:cAlias )->importe, "@e 99,999,999.99" )   ID 103 UPDATE;
      ON DBLCLICK  hnotas( oAjuste:recibo, oAjuste:ncli, oAjuste:importe, oAjuste, oBrw1 )
       

   oBrw1:aheaders := { "Nº Cliente", "Recibo", "Detalle", "Dólar", "Importe" }
   oBrw1:aColSizes := { 90, 90, 150, 95, 120 }
   oBrw1:aHjustify := {2,2,2,2,2}
   oBrw1:ajustify := {0,0,0,1,1}
   oBrw1:bSkip = {| nRecs | oAjuste:Skipper( nRecs ) }
   oBrw1:nLineStyle := 3
   oBrw1:nClrPane := { || iif(fechache(oAjuste:recibo,oCheque,oBrw1), cColor("verde"), cColor("")) }
 



   ACTIVATE DIALOG oDlg on Init oBrw1:gobottom()

   cldata( aObj )

RETURN NIL
 


El código de arriba funcionaba en xharbour pero no en harbour.

Le quité oAjuste:gotop()

Y ahora funciona con los dos compiladores

Ahora cual es la explicación??

Luis

Re: Comportamiento desigual entre xharbour y harbour

PostPosted: Sun Jun 15, 2014 1:58 pm
by Antonio Linares
Luis,

Pero ahora te funciona bien ?

Re: Comportamiento desigual entre xharbour y harbour

PostPosted: Sun Jun 15, 2014 7:09 pm
by surGom
Hola Antonio, sí funciona perfectamente, no hay cuelgues, las consultas que hago sobre la grilla responden bien. Funciona igual que en xHarbour.


Luis