Durante todos los años que he usado FW, tanto en 16 como en 32, siempre use el browse de Hernan bajo el siguiente esquema :
Code: Select all
Con arrays :
Static lbCmpEqv, aCmpEqv, pCmpEqv
aCmpEqv := { {"X","DESC X",10},{"Y","DESC Y",20},{"Z","DESC Z",30} }
pCmpEqv := 1
REDEFINE LISTBOX lbCmpEqv ;
FIELDS aCmpEqv[pCmpEqv,1],aCmpEqv[pCmpEqv,2],aCmpEqv[pCmpEqv,3] ;
HEAD "NUM. PARTE","DESCRIPCION","EXST" ;
FIELDSIZES 120,405,75 ;
ID 123 ;
FONT aSysFnts[1] ;
ON DBLCLICK SetEqv2Cmp( ) ;
OF oFldMntPqs:aDialogs[1]
lbCmpEqv:SetArray( aCmpEqv )
lbCmpEqv:nLineStyle := 2
lbCmpEqv:lDrawFocusRect := .F.
lbCmpEqv:nClrLine := CLR_WHITE
lbCmpEqv:BGOTOP := { || pCmpEqv :=1}
lbCmpEqv:BGOBOTTOM := { || pCmpEqv := eVal( lbCmpEqv:bLogicLen ) }
lbCmpEqv:BSKIP := { | nWant, nOld | nOld := pCmpEqv , pCmpEqv += nWant,;
pCmpEqv := Max( 1, Min( pCmpEqv, eVal( lbCmpEqv:bLogicLen ) ) ), pCmpEqv - nOld }
lbCmpEqv:BLOGICLEN := { || Len( aCmpEqv ) }
lbCmpEqv:AJUSTIFY := { .F.,.F.,.T. }
lbCmpEqv:nClrPane := { || IIF( pCmpEqv%2 == 0, aBrwClrs[1], aBrwClrs[2] ) }
..
..
Static Function SetEqv2Cmp( )
msginfo( aPaqEnc[pPaqEnc,2] ) -- > "DESC X"
Return NIL
Code: Select all
REDEFINE LISTBOX lbCmpEqv ;
FIELDS ;
IIF( aRSCmpsEqvs[3], aRSCmpsEqvs[2]:Fields("PPART"):Value, "" ), ;
IIF( aRSCmpsEqvs[3], aRSCmpsEqvs[2]:Fields("PDESC"):Value, "" ), ;
IIF( aRSCmpsEqvs[3], TransForm( aRSCmpsEqvs[2]:Fields("ITMEXST"):Value, "999.99" ), "" ) ;
HEAD "NUM. PARTE","DESCRIPCION","EXST" ;
FIELDSIZES 120,405,75 ;
FONT aSysFnts[1] ;
ID 123 ;
OF oFldMntPqs:aDialogs[1]
lbCmpEqv:BLOGICLEN := { || aRSCmpsEqvs[2]:RecordCount }
lbCmpEqv:BGOTOP := { || aRSCmpsEqvs[2]:MoveFirst() }
lbCmpEqv:BGOBOTTOM := { || aRSCmpsEqvs[2]:MoveLast() }
lbCmpEqv:BSKIP := { | nSkip | Skipper( aRSCmpsEqvs[2], nSkip ) }
lbCmpEqv:cAlias := "ARRAY"
lbCmpEqv:nLineStyle := 2
lbCmpEqv:lDrawFocusRect := .F.
lbCmpEqv:nClrLine := CLR_WHITE
lbCmpEqv:nClrPane := { || IIF( aRSCmpsEqvs[2]:AbsolutePosition%2 == 0, aBrwClrs[1], aBrwClrs[2] ) }
Sin embargo, me encuentro con varias trabas :
- Casi todos los ejemplos existentes son para usarlo por codigo y yo uso recursos.
- Los pocos (poquisimos) ejemplos que manejan recursos, son muy diferentes a los acostumbrados.
- Los posts que encontre en el foro estan excelentes, pero para un novato en esta clase como yo, los veo algo complicados.
Segun el archivo .CH del XBrowse, la sintaxis es muy parecida a la del TWBrowse, por lo que mi pregunta es :
Es posible seguir usando casi la misma sintaxis que uso, pero aplicandola a la clase XBrowse ? o tengo que "rehacer" muchas lineas de codigo para poder lograrlo ?
Quiero comentar que el 90% de los browses que uso, son casi siempre solo para mostrar datos, ya despues los ire ajustando para sacar provecho de todas las funciones que ofrece esta clase.
Cualquier ejemplo es bienvenido
Gracias y Saludos