Armando, prueba y comenta, pls.
// Class TXBrowse group headers demo
#include "FiveWin.ch"
#include "XBrowse.ch"
REQUEST DBFCDX
FUNCTION Main()
聽 聽LOCAL oWnd, oBar, oFont
聽 聽SET DATE ITALIAN
聽 聽SET CENTURY ON
聽 聽rddSetDefault( 'DBFCDX' )
聽 聽DEFINE FONT oFont NAME 'TAHOMA' SIZE 0, - 12
聽 聽DEFINE WINDOW oWnd MDI ;
聽 聽 聽 TITLE "Testing GroupHeaders support for xBrowse"
聽 聽oWnd:SetFont( oFont )
聽 聽DEFINE BUTTONBAR oBar OF oWnd 2007
聽 聽DEFINE BUTTON OF oBar FILE "..\bitmaps\16x16\exit.bmp" ACTION ( oWnd:End() )
聽 聽DEFINE BUTTON OF oBar FILE "..\bitmaps\16x16\New.bmp" 聽ACTION ( TestHeader() )
聽 聽ACTIVATE WINDOW oWnd MAXIMIZED
聽 聽RELEASE FONT oFont
RETURN NIL
FUNCTION TestHeader()
聽 聽LOCAL oWnd, oBrw, oBold, cClrBack
聽 聽LOCAL cAlias 聽:= cGetNewAlias( 'CUST' )
聽 聽USE CUSTOMER NEW SHARED ALIAS ( cAlias )
聽 聽DEFINE FONT oBold NAME 'VERDANA' SIZE 0, - 14 BOLD
聽 聽DEFINE WINDOW oWnd MDICHILD OF WndMain()
聽 聽@ 0, 0 XBROWSE oBrw OF oWnd ;
聽 聽 聽 COLUMNS 'First', 'Last', 'Street', 'City', 'State', ;
聽 聽 聽 'Zip', 聽 'HireDate', 'Married', 'Age' ;
聽 聽 聽 COLSIZES 100, 100, 100, 100 ;
聽 聽 聽 ALIAS cAlias CELL LINES ;
聽 聽 聽 FOOTERS AUTOSORT
聽 聽/* HEADERS 'First' + CRLF + 'Name', 'Last' + CRLF + 'Name' */ ;
聽 聽/* // original
聽 聽WITH OBJECT oBrw
聽 聽 聽 :SetGroupHeader( 'EMPLOYEE' + CRLF + 'NAME', 聽 聽1, 2, oBold )
聽 聽 聽 :SetGroupHeader( 'ADDRESS', 3, 6, oBold )
聽 聽 聽 :SetGroupHeader( 'OTHER', 聽 8, 9, oBold )
聽 聽 聽 :Married:SetCheck()
聽 聽 聽 :nStretchCol 聽 := :Street:nCreationOrder
聽 聽END
聽 聽*/
聽 聽// Armando:
聽 聽WITH OBJECT oBrw
聽 聽 聽 :l2007 聽 聽 聽 聽 聽 聽:= .F.
聽 聽 聽 :lHScroll 聽 聽 聽 聽 := .F.
聽 聽 聽 :lVScroll 聽 聽 聽 聽 := .F.
聽 聽 聽 :nMarqueeStyle 聽 聽:= MARQSTYLE_HIGHLROW
聽 聽 聽 :nColDividerStyle := LINESTYLE_LIGHTGRAY
聽 聽 聽 :nRowDividerStyle := LINESTYLE_LIGHTGRAY
聽 聽 聽 :nStretchCol 聽 聽 聽:= STRETCHCOL_WIDEST
聽 聽 聽 :nHeaderHeight 聽 聽:= 25
聽 聽 聽 :nRowHeight 聽 聽 聽 := 22
聽 聽 聽 :nFooterHeight 聽 聽:= 25
聽 聽 聽 :bClrHeader 聽 聽 聽 := {|| { CLR_WHITE, CLR_BLACK } }
聽 聽 聽 :bClrFooter 聽 聽 聽 := {|| { CLR_WHITE, CLR_BLACK } }
聽 聽 聽 // Armando
聽 聽 聽 // :bClrSel 聽 聽 聽 := {|| IF( oApp:KeyNo % oApp:nRowsInt == 0, { CLR_BLACK, oApp:nRowParClr }, { CLR_BLACK, oApp:nRowNonClr } ) }
聽 聽 聽 :bClrSel = { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_BLACK, CLR_WHITE ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽RGB( 34, 177, 76 ) } } //RGB( 0x33, 0x66, 0xCC ) } }
聽 聽 聽 cClrBack = Eval( oBrw:bClrSelFocus )[ 2 ]
聽 聽 聽 // Armando
聽 聽 聽 // :bClrSelFocus 聽 聽 := {|| { oApp:nFClrFocus, oApp:nBClrFocus } }
聽 聽 聽 :bClrSelFocus 聽:= { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 cClrBack } }
聽 聽 聽 // Armando
聽 聽 聽 // :bClrStd 聽 聽 聽 聽 聽:= {|| IF( oBrw:KeyNo % oApp:nRowsInt == 0, { CLR_BLACK, oApp:nRowParClr }, { CLR_BLACK, oApp:nRowNonClr } ) }
聽 聽 聽 :bClrStd = { || If( oBrw:KeyNo() % 2 == 0, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽RGB( 198, 255, 198 ) }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽RGB( 232, 255, 232 ) } ) }
聽 聽 聽 // Armando
聽 聽 聽 // :nRecSelColor 聽 聽 := oApp:nRowParClr //???
聽 聽 聽 :nRecSelColor 聽 聽 := 聽 nRgb( 245,244,234)
聽 聽 聽 :lDisplayZeros 聽 聽:= .F.
聽 聽 聽 :blDblClick 聽 聽 聽 := {| nRow, nCol, nKey | Editar( oBrw, ( .F. ) ) }
聽 聽 聽 :bKeyDown 聽 聽 聽 聽 := {| nKey, nFlags | iif( nKey == VK_RETURN, Editar( oBrw, .F. ), ) }
聽 聽 聽 WITH OBJECT :aCols[ 01 ]
聽 聽 聽 聽 聽:cOrder := "A"
聽 聽 聽 END
聽 聽END
聽 聽// original
聽 聽AEval( oBrw:aCols, {| o | o:nHeadStrAlign := AL_CENTER } )
聽 聽// original
聽 聽/*
聽 聽WITH OBJECT oBrw:aCols[ 6 ]
聽 聽 聽 :AddBmpFile( '..\bitmaps\mail.bmp' )
聽 聽 聽 :nGrpBmpNo 聽:= 1
聽 聽END
聽 聽*/
聽 聽/* // original
聽 聽oBrw:bRClicked := {|| oBrw:SetGroupHeader( 'CITY', 5, 6, oBold ) }
聽 聽oBrw:lAllowColReGroup 聽:= .T.
聽 聽*/
聽 聽oBrw:CreateFromCode()
聽 聽oWnd:oClient := oBrw
聽 聽ACTIVATE WINDOW oWnd MAXIMIZED ;
聽 聽 聽 ON INIT oBrw:SetFocus() ;
聽 聽 聽 VALID( oBold:End(), .T. )
RETURN NIL
FUNCTION Editar( oBrw, 聽lEdit 聽)
RETURN NIL
// fin / end
Regards, saludos.