聽 聽 Local i
聽 聽 Local oBrw
聽 聽 Local cStrings 聽 聽
聽 聽 Local cQuery := 'select * from alumnos order by alumno'
聽 聽 Memvar oVar
聽 聽
聽 聽 Query( @::oRs, cQuery )
聽 聽 @ 35 + oVar : n, 250 xBrowse ::oBrw DataSource ::oRs Columns 0, 1, 2, 3, 4, 5, 6, 7, 8 Pixel NoBorder Of oVar : oWndMain
聽 聽
聽 聽 With Object ::oBrw
聽 聽 聽 聽 For i := 1 To Len( :aCols )
聽 聽 聽 聽 聽 聽 Switch i
聽 聽 聽 聽 聽 聽 聽 聽 Case 1
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader 聽:= 'C脫DIGO'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : bStrData := { || StrZero( ::oRs : Fields( 'codigo' ) : Value, 6 ) }
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : nDataStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 2
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : nWidth := 250
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 3
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : nWidth := 200
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 4
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : nWidth := 100
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 6
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader := 'C. POSTAL'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 7
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader := 'T. DOC.'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 Case 8
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader := 'N潞 DOC.'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 EndSwitch聽 聽聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader 聽 聽 := Upper( :aCols[ i ] : cHeader )
聽 聽 聽 聽 聽 聽 :aCols[ i ] : oDataFont 聽 := oVar : oFont2
聽 聽 聽 聽 聽 聽 :aCols[ i ] : oHeaderFont := oVar : oFont3
聽 聽 聽 聽 聽 聽 :aCols[ i ] : nHeadStrAlign := 0
聽 聽 聽 聽 Next i聽
聽 聽 聽 聽 :nRecSelColor 聽 聽 := CLR_WHITE
聽 聽 聽 聽 :nRowHeight 聽 聽 聽 := 27
聽 聽 聽 聽 :nHeaderHeight 聽 聽:= 35
聽 聽 聽 聽 :bClrHeader 聽 聽 聽 聽 := { || { CLR_WHITE, CLR_BLACK 聽} }
聽 聽 聽 聽 :nColorPen 聽 聽 聽 聽:= nRgb( 225, 225, 225 )
聽 聽 聽 聽 :bClrSelFocus 聽 聽 := { || { CLR_WHITE, nRgb( 46, 139, 87 ) } }
聽 聽 聽 聽 :bClrSel 聽 聽 聽 聽 聽:= { || { CLR_BLACK, RGB( 255, 255, 255 ) } }
聽 聽 聽 聽 :nColDividerStyle := 5
聽 聽 聽 聽 :nRowDividerStyle := 5
聽 聽 聽 聽 :nMarqueeStyle 聽 聽:= 3
聽 聽 聽 聽 :lFlatStyle 聽 聽 聽 := .t.
聽 聽 聽 聽 :l2007 聽 聽 聽 聽 聽 聽:= .f.
聽 聽 聽 聽 :lKinetic 聽 聽 聽 聽 := .f.
聽 聽 聽 聽 :lExcelCellWise 聽 := .t. 聽 聽 聽
聽 聽 聽 聽 :lAllowRowSizing 聽:= .f. 聽 聽 聽
聽 聽 聽 聽 :lColDividerComplete := .t.
聽 聽 聽 聽 :bKeyDown 聽 聽 聽 聽 := { | nKey | If( nKey == VK_RETURN, MsgStop( ::nEnQueTabla ), ) } 聽 聽
聽 聽 聽 聽 :CreateFromCode()聽 聽
聽 聽 聽 聽 :SelectCol( 2 )
聽 聽 EndWith
聽 聽 Return 0Se ve de esta manera, La alineaci贸n de la primera columna es la correcta

Pero cuando genero la segunda tabla, todo va bien menos la alineaci贸n de los datos. Este es el c贸digo de la segunda tabla
聽 聽 Local i
聽 聽 Local oCol
聽 聽 Local cQuery := 'select * from conceptos order by codigo'
聽 聽 Memvar oVar
聽 聽
聽 聽 ::oRs : Close()
聽 聽 Query( @::oRs, cQuery )
聽 聽 ::oBrw : SetAdo( ::oRs, .t., .f., { 'codigo', 'descrip', 'importe', 'porcentaje' } ) 聽 聽
聽 聽 With Object ::oBrw
聽 聽 聽 聽 For i := 1 To Len( :aCols )
聽 聽 聽 聽 聽 聽 Switch i
聽 聽 聽 聽 聽 聽 聽 聽 Case 1
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ 1 ] : cHeader 聽:= 'C脫DIGO'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : bStrData := { || StrZero( ::oRs : Fields( 'codigo' ) : Value, 6 ) }
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ 1 ] : nDataStrAlign := 2
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 聽 聽 OtherWise
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 :aCols[ i ] : cHeader 聽 聽 := Upper( :aCols[ i ] : cHeader )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Exit
聽 聽 聽 聽 聽 聽 EndSwitch聽 聽聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 :aCols[ i ] : nHeadStrAlign := 0
聽 聽 聽 聽 聽 聽 :aCols[ i ] : oDataFont 聽 := oVar : oFont2
聽 聽 聽 聽 聽 聽 :aCols[ i ] : oHeaderFont := oVar : oFont3
聽 聽 聽 聽 Next i聽
聽 聽 聽 聽 :nRowHeight 聽 聽 聽 := 27
聽 聽 聽 聽 :nHeaderHeight 聽 聽:= 35
聽 聽 聽 聽 :SelectCol( 2 )
聽 聽 End
聽 聽 ::oBrw : Refresh()
聽 聽 ::nEnQueTabla := 2
聽 聽 Return 0Y la imagen

A pesar de haber definido la alineaci贸n de los datos no los toma, sin embargo la alineaci贸n de los header definida en el c贸digo si lo hace. Alguna idea para resolver este problema ? . Muchisimas gracias
Saludos