Antonio...Ayuda con xBrowse (SetBackGround) desde recursos

Antonio...Ayuda con xBrowse (SetBackGround) desde recursos

Postby Blessed » Tue Sep 23, 2008 9: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).
Code: Select all  Expand view  RUN
      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)
[/quote]
Last edited by Blessed on Mon Sep 29, 2008 10:21 pm, edited 3 times in total.
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Postby Armando » 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
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Ayuda con el xBrowse

Postby FranciscoA » 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.
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Saludos

Postby Blessed » 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
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Re: Ayuda con el xBrowse (SetBackGround)

Postby FranciscoA » Fri Sep 26, 2008 3: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).
Code: Select all  Expand view  RUN
      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)
[/quote]


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.
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby Blessed » Fri Sep 26, 2008 5: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
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Postby Blessed » Fri Sep 26, 2008 9: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
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Postby Blessed » 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:


Code: Select all  Expand view  RUN
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
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Postby Daniel Garcia-Gil » 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 )
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby Blessed » Mon Oct 06, 2008 7: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
User avatar
Blessed
 
Posts: 243
Joined: Wed Sep 19, 2007 4:32 pm
Location: Honduras, C.A.

Postby Antonio Linares » Mon Oct 06, 2008 8:21 pm

Blessed,

El error se debe a que bKeyCount es nil:
Code: Select all  Expand view  RUN
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
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

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