FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Tue Sep 23, 2008 09:07 PM
Estoy migrando a la FWH 8.08 y hay algunas cosas que en las que necesito ayuda.

En un xBrowse por recursos, necesito ver una lista de precios, pero la columna numerica aunque en la columna le indico la secuencia para mascara (PICTURE) en cEditPicture, me muestra la columna sin separadores.
He revisado otros Post, y cEditPicture, no ofrece mucha detalle, en los ejemplos de la FWH, tampoco se tiene mucho alcance, mas para prueba y error.

Por otro lado al declarar un BRUSH y quererlo insertar al xBrowse con SetBackGround( oBrush ) me da un error (ver abajo).
      DEFINE BRUSH oBrush FILE "fondos\fact.bmp"

		* Define la lista XBrowse
		WITH OBJECT ( oBrowse := TXBrowse():new( oWndChilds[1] ) )
	      :CreateFromResource( 803 )
	      :cAlias                 := "MOVI"
	      :nColDividerStyle       := LINESTYLE_FORECOLOR
	      :lColDividerComplete    := .T.
	      :nMarqueeStyle          := MARQSTYLE_HIGHLROW
	      :lAllowRowSizing        := .F.
	      :lRecordSelector        := .F.
	      :lAllowColHiding        := .F.
			:lAutoSort              := .T.
	      :lAllowRowSizing        := .F.
	      :lHScroll               := .F.
         :bClrSel                := {|| { CLR_BLACK, GetSysColor( 13 ) } }
         :SetBackGround( oBrush )
	      && Agrega columna al xBrowse
			WITH OBJECT ( oCol := :AddCol() )
	
		      :cHeader  := "Descripci贸n"
		      :bStrData := {|| MOVI->MOVI_DESCR }
		      :nWidth   := 256

	         :nHeadStrAlign := AL_CENTER

		   END

	      && Agrega columna al xBrowse
			WITH OBJECT ( oCol := :AddCol() )
	
		      :cHeader  := "Precio"
		      :bStrData := {|| MOVI->MOVI_PRECI }
		      :nWidth   := 90

	         :nHeadStrAlign := AL_CENTER
	         :nDataStrAlign := AL_RIGHT
	         :cEditPicture  := "@Z 99,999.9999"

		   END
	   END


El error que me causa insertar SetBackGround( oBrush )

Error description: Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Args:
[ 1] = U

Stack Calls
===========
Called from: => EVAL(0)
Called from: XBROWSE.prg => (b)TXBROWSE:TXBROWSE(286)
Called from: => TXBROWSE:KEYCOUNT(0)
Called from: XBROWSE.prg => TXBROWSE:REFRESH(823)
Called from: WINDOW.prg => (b)TWINDOW:TWINDOW(544)
Called from: => TXBROWSE:SETBRUSH(0)
Called from: XBROWSE.prg => TXBROWSE:SETBACKGROUND(3602)
Called from: Inv_cfac.prg => GENFACT(191)
Called from: M2.prg => (b)MAIN(141)
Called from: BTNBMP.prg => TBTNBMP:CLICK(389)
Called from: BTNBMP.prg => TBTNBMP:LBUTTONUP(560)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.prg => TCONTROL:HANDLEEVENT(1429)
Called from: BTNBMP.prg => TBTNBMP:HANDLEEVENT(1042)
Called from: WINDOW.prg => _FWH(3300)
Called from: => WINRUN(0)
Called from: WINDOW.prg => TMDIFRAME:ACTIVATE(951)
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Tue Sep 23, 2008 11:36 PM

Blessed:

Intenta con TRANSFORM():

:bStrData := {|| TRANSFORM(MOVI->MOVI_PRECI,"@Z 99,999.9999" }

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ayuda con el xBrowse
Posted: Wed Sep 24, 2008 10:19 PM

Blessed, apoyo lo de Armando. Lo siguiente me trabaja perfecto.

oCol = oBrw:AddCol()
oCol:bStrData = { || Transform((cAlias)->DEBE,"999,999,999.99") }
oCol:nDataStrAlign := 1 //alineado a la derecha
oCol:cHeader = "DEBITOS"
oCol:nEditType = EDIT_GET
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DbAppend(), oBrw:Refresh() ),), If( nKey == VK_RETURN, (cAlias)->DEBE := Val(xVal),) }

Saludos
Francisco.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Saludos
Posted: Thu Sep 25, 2008 11:18 PM
Armando, Francisco

Les agradezco, me ha servido muy bien su recomendacion, en cuanto a al picture en el xBrowse.

Pero aun tengo pendiente lo del error que me causa insertar SetBackGround( oBrush ) desde recursos:

Error description: Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Args:
[ 1] = U

Stack Calls
===========
Called from: => EVAL(0)
Called from: XBROWSE.prg => (b)TXBROWSE:TXBROWSE(286)
Called from: => TXBROWSE:KEYCOUNT(0)
Called from: XBROWSE.prg => TXBROWSE:REFRESH(823)
Called from: WINDOW.prg => (b)TWINDOW:TWINDOW(544)
Called from: => TXBROWSE:SETBRUSH(0)
Called from: XBROWSE.prg => TXBROWSE:SETBACKGROUND(3602)
Called from: Inv_cfac.prg => GENFACT(191)
Called from: M2.prg => (b)MAIN(141)
Called from: BTNBMP.prg => TBTNBMP:CLICK(389)
Called from: BTNBMP.prg => TBTNBMP:LBUTTONUP(560)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.prg => TCONTROL:HANDLEEVENT(1429)
Called from: BTNBMP.prg => TBTNBMP:HANDLEEVENT(1042)
Called from: WINDOW.prg => _FWH(3300)
Called from: => WINRUN(0)
Called from: WINDOW.prg => TMDIFRAME:ACTIVATE(951)


Saludos desde Honduras
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Ayuda con el xBrowse (SetBackGround)
Posted: Fri Sep 26, 2008 03:10 AM
Blessed wrote:Estoy migrando a la FWH 8.08 y hay algunas cosas que en las que necesito ayuda.

En un xBrowse por recursos, necesito ver una lista de precios, pero la columna numerica aunque en la columna le indico la secuencia para mascara (PICTURE) en cEditPicture, me muestra la columna sin separadores.
He revisado otros Post, y cEditPicture, no ofrece mucha detalle, en los ejemplos de la FWH, tampoco se tiene mucho alcance, mas para prueba y error.

Por otro lado al declarar un BRUSH y quererlo insertar al xBrowse con SetBackGround( oBrush ) me da un error (ver abajo).
      DEFINE BRUSH oBrush FILE "fondos\fact.bmp"

		* Define la lista XBrowse
		WITH OBJECT ( oBrowse := TXBrowse():new( oWndChilds[1] ) )
	      :CreateFromResource( 803 )
	      :cAlias                 := "MOVI"
	      :nColDividerStyle       := LINESTYLE_FORECOLOR
	      :lColDividerComplete    := .T.
	      :nMarqueeStyle          := MARQSTYLE_HIGHLROW
	      :lAllowRowSizing        := .F.
	      :lRecordSelector        := .F.
	      :lAllowColHiding        := .F.
			:lAutoSort              := .T.
	      :lAllowRowSizing        := .F.
	      :lHScroll               := .F.
         :bClrSel                := {|| { CLR_BLACK, GetSysColor( 13 ) } }
         :SetBackGround( oBrush )
	      && Agrega columna al xBrowse
			WITH OBJECT ( oCol := :AddCol() )
	
		      :cHeader  := "Descripci贸n"
		      :bStrData := {|| MOVI->MOVI_DESCR }
		      :nWidth   := 256

	         :nHeadStrAlign := AL_CENTER

		   END

	      && Agrega columna al xBrowse
			WITH OBJECT ( oCol := :AddCol() )
	
		      :cHeader  := "Precio"
		      :bStrData := {|| MOVI->MOVI_PRECI }
		      :nWidth   := 90

	         :nHeadStrAlign := AL_CENTER
	         :nDataStrAlign := AL_RIGHT
	         :cEditPicture  := "@Z 99,999.9999"

		   END
	   END


El error que me causa insertar SetBackGround( oBrush )

Error description: Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Args:
[ 1] = U

Stack Calls
===========
Called from: => EVAL(0)
Called from: XBROWSE.prg => (b)TXBROWSE:TXBROWSE(286)
Called from: => TXBROWSE:KEYCOUNT(0)
Called from: XBROWSE.prg => TXBROWSE:REFRESH(823)
Called from: WINDOW.prg => (b)TWINDOW:TWINDOW(544)
Called from: => TXBROWSE:SETBRUSH(0)
Called from: XBROWSE.prg => TXBROWSE:SETBACKGROUND(3602)
Called from: Inv_cfac.prg => GENFACT(191)
Called from: M2.prg => (b)MAIN(141)
Called from: BTNBMP.prg => TBTNBMP:CLICK(389)
Called from: BTNBMP.prg => TBTNBMP:LBUTTONUP(560)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.prg => TCONTROL:HANDLEEVENT(1429)
Called from: BTNBMP.prg => TBTNBMP:HANDLEEVENT(1042)
Called from: WINDOW.prg => _FWH(3300)
Called from: => WINRUN(0)
Called from: WINDOW.prg => TMDIFRAME:ACTIVATE(951)



Blessed:
Yo ten铆a exactamente el mismo problema. La cuesti贸n era que lo
llamaba antes del CreateFromCode(). Al llamarlo despu茅s, me funcion贸 correctamente.

Ejemplo:

oBrw:CreateFromCode()

BackGrdBrw(oBrw) //poner fondo al Browse

oChild:oClient := oBrw

ACTIVATE WINDOW oChild

RETURN NIL

//------------------------------------
FUNCTION BackGrdBrw( oBrw )
Local oBrush

DEFINE BRUSH oBrush FILENAME "MiFondo.BMP"
oBrw:SetBackGround( oBrush )
RELEASE BRUSH oBrush

oBrw:Refresh()
return nil

Saludos.
Francisco Alegr铆a P.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Fri Sep 26, 2008 05:16 PM

Francisco, Gracias

Lo probe como recomiendas, y me da el mismo error.

Una acotacion, yo lo necesito crear desde recursos (CreateFromResource)
no directamente desde el codigo (CreateFromCode).

Y por cierto, desde recursos no hay documentacion de como hacerlo.

Porque he buscado en los ejemplos que acompa帽an la FWH 8.08 y todos van dirigidos desde codigo, no desde recursos.
En la documentacion de ayuda aun no hay referencia al topico de xbrowse desde recursos.

Saludos :)

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Fri Sep 26, 2008 09:12 PM

Es posible actualmente utilizar SetBackGround( oBrush ) desde recursos, o estara disponible pronto.

Saludos :)

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Mon Sep 29, 2008 10:23 PM
Antonio, Estoy queriendo poner mis aplicaciones al dia, con los cambios de la FWH 8.01 a la 8.08 y me pregunto si es posible actualmente utilizar SetBackGround( oBrush ) desde recursos, o estara disponible pronto.

ya que al colocarlo me da el siguiente error:


DEFINE BRUSH oBrush FILE "fondos\fact.bmp" 

      * Define la lista XBrowse 
      WITH OBJECT ( oBrowse := TXBrowse():new( oWndChilds[1] ) ) 
         :CreateFromResource( 803 ) 
         :cAlias                 := "MOVI" 
         :nColDividerStyle       := LINESTYLE_FORECOLOR 
         :lColDividerComplete    := .T. 
         :nMarqueeStyle          := MARQSTYLE_HIGHLROW 
         :lAllowRowSizing        := .F. 
         :lRecordSelector        := .F. 
         :lAllowColHiding        := .F. 
         :lAutoSort              := .T. 
         :lAllowRowSizing        := .F. 
         :lHScroll               := .F. 
         :bClrSel                := {|| { CLR_BLACK, GetSysColor( 13 ) } } 
         :SetBackGround( oBrush ) 
         && Agrega columna al xBrowse 
         WITH OBJECT ( oCol := :AddCol() ) 
    
            :cHeader  := "Descripci贸n" 
            :bStrData := {|| MOVI->MOVI_DESCR } 
            :nWidth   := 256 

            :nHeadStrAlign := AL_CENTER 

         END 

         && Agrega columna al xBrowse 
         WITH OBJECT ( oCol := :AddCol() ) 
    
            :cHeader  := "Precio" 
            :bStrData := {|| TRANSFORM( MOVI->MOVI_PRECI, "@Z 99,999.9999"  ) } 
            :nWidth   := 90 

            :nHeadStrAlign := AL_CENTER 
            :nDataStrAlign := AL_RIGHT 

         END 
      END


Error description: Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Args:
[ 1] = U

Stack Calls
===========
Called from: => EVAL(0)
Called from: XBROWSE.prg => (b)TXBROWSE:TXBROWSE(286)
Called from: => TXBROWSE:KEYCOUNT(0)
Called from: XBROWSE.prg => TXBROWSE:REFRESH(823)
Called from: WINDOW.prg => (b)TWINDOW:TWINDOW(544)
Called from: => TXBROWSE:SETBRUSH(0)
Called from: XBROWSE.prg => TXBROWSE:SETBACKGROUND(3602)
Called from: Inv_cfac.prg => GENFACT(191)
Called from: M2.prg => (b)MAIN(141)
Called from: BTNBMP.prg => TBTNBMP:CLICK(389)
Called from: BTNBMP.prg => TBTNBMP:LBUTTONUP(560)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.prg => TCONTROL:HANDLEEVENT(1429)
Called from: BTNBMP.prg => TBTNBMP:HANDLEEVENT(1042)
Called from: WINDOW.prg => _FWH(3300)
Called from: => WINRUN(0)
Called from: WINDOW.prg => TMDIFRAME:ACTIVATE(951)


Saludos :-)
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Mon Sep 29, 2008 11:30 PM
Blessed wrote:
DEFINE BRUSH oBrush FILE "fondos\fact.bmp"


no definas el BRUSH
:SetBackGrnd( " direccion del bitmap o nombre del recurso " )

otra forma como lo puedes hacer si quieres definir el BRUSH primero, cuando actives el DIALOG o el WINDOW que contiene el xbrowse en la clausula ON INIT colocas la asignacion del brush

activate dialog oDlg on init oBrw:SetBackGrnd( oBrush )
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Mon Oct 06, 2008 07:17 PM

mcfox, Gracias por tu tiempo.

Probe de ambas maneras y no me resulta; seguiremos esperando, tal vez...

Saludos desde Honduras :)

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Antonio...Ayuda con xBrowse (SetBackGround) desde recursos
Posted: Mon Oct 06, 2008 08:21 PM
Blessed,

El error se debe a que bKeyCount es nil:
Stack Calls 
=========== 
Called from: => EVAL(0) 
Called from: XBROWSE.prg => (b)TXBROWSE:TXBROWSE(286) 
Called from: => TXBROWSE:KEYCOUNT(0) 
...

Es suficiente con que definas oBrw:bKeyCount antes de intentar asignar el brush.
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion