Para Antonio Linares..

Post Reply
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Para Antonio Linares..

Post by un_jeepero »

Hola Antonio, no queria molestarlo con este problema. Pero llevo tiempo con esto y no logro encontrar una solución o al menos saber si se puede o no para no seguir intentandole jajaja.

Estoy utilizando TXbrowse con arrays y necesito poner un Bitmap que cambie de estado, solo me funciona al trabajar directo desde la dbf.... como en el ejemplo adjunto.

Directo de la DBF, Funciona correctamente.

::oBrw := TXBrowse():New( ::oWnd )
::oBrw:cAlias := DBF_GIRBAN:cAlias
::oCol := Array( 01 )
::oCol[01] := ::oBrw:AddCol()
::oCol[01]:cHeader := "Conciliado"
::oCol[01]:AddResource( "CHECK_SI" )
::oCol[01]:AddResource( "CHECK_NO" )
::oCol[01]:bBmpData := { || IF( DBF_GIRBAN:ESTGIR == .T. , 1, 2) }
::oCol[01]:BStrData := { || "" }
::oCol[01]:nWidth := 60
::oBrw:CreateFromCode()
....
....
Desde un Array, NO muestra el BMP

WITH OBJECT ::oBrw
:SetArray( AR_DATOS, .T. )
WITH OBJECT :aCols[ ESTADO ]
:cHeader := "Conciliado"
:AddResource( "CHECK_SI" )
:AddResource( "CHECK_NO" )
:bBmpData := { || IF(Len(AR_DATOS) >0, (IF ( AR_DATOS[::oBrw:nArrayAt][ESTGIR] == .T. , 1, 2) ), NIL) }
:bStrData := { || ""}
:nWidth := 40
END
END
...
...
muchas gracias

Salu2

Mauro
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Prueba con una expresión más simple para asegurarte:

:bBmpData := { || IF( ::oBrw:nArrayAt == 1, 1, 2 ) }
regards, saludos

Antonio Linares
www.fivetechsoft.com
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Post by un_jeepero »

Antonio, primero muchas gracias por responder..
He probado de varias formas incluso como me indicas e igual no funciona.
:bBmpData := { || IF( ::oBrw:nArrayAt == 1, 1, 2 ) }

Talves TXBrowse no permite el uso de Bmp al utilizar arrays de datos??
alguien lo habra utilizado de esta forma??

sigo en espera de alguna otra solución...

salu2

Mauro
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Mauro:
Yo tenía el mismo problema. Prueba esto:

Code: Select all

etc .................
       oBrw:aCols[i]:AddResource("MARCA_ON")
       oBrw:aCols[i]:AddResource("MARCA_OFF")
       oBrw:aCols[i]:bBmpData      := { || FnMarca(oBrw, i) }
       oBrw:aCols[i]:nHeadBmpNo    := 3
       oBrw:aCols[i]:nHeadBmpAlign := AL_LEFT
       oBrw:aCols[i]:cHeader       := ""
etc ..............

// --------------------------------------------------------
Static Function FnMarca(oBrw, i)
Local n := oBrw:nArrayAt
Local nBmp
If oBrw:aArrayData[n, 3] = "S"   // mi tercera columna es el CheckOn/Check Off
    nBmp := 3      // Parece que los resursos 1 y 2 son los indicadores de sort up/down
Else
    nBmp := 4
Endif
Return nBmp
A mí me funciona. Suerte!
Rafael
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Post by un_jeepero »

Rafael, te pasaste por la información funciono perfecto solo me faltaba cambiar 3, 4 los indicadores.

WITH OBJECT :aCols[ESTADO]
:AddResource( "CHECK_ON" )
:AddResource( "CHECK_OFF" )
:bBmpData := { || IF( AR_MES[::oBrw:nArrayAt][ESTADO ] == .T., 3, 4) }
END
tenia mucho tiempo con esta cosa, super agradecido con tu información

salu2

Mauro
Post Reply