Tengo un xbrowse que defino yo creo correctamente, pero no entiendo porque razón me agrega una columna vacía al final, lo que ya identifique es que se da cuando agrego bitmaps en el texto de las cabeceras (en columnas 1 y 10 usando :AddBitmap y :HeadBmpNo), pero no encuentra la razón para ello.
Mi código es el siguiente (uso FWH1709):
- Code: Select all Expand view
LOCAL aGraficos:={"PRACTICA" ,"EQUIPO-IDEAL"}
DEFINE FONT oFnt NAME GetSysFont() SIZE 0, -11
DEFINE FONT oFnt2 NAME GetSysFont() SIZE 0, -11 BOLD
DEFINE DIALOG oDlgEst RESOURCE "DATOS_HIST5" OF oVent FONT oFnt TITLE "Estadísticas individuales de cada Equipo"
REDEFINE COLUMN XBROWSE oLbx ID 6001 OF oDlgEst ARRAY aEstad AUTOSORT GDI
ADD COLUMN TO oLbx AT 1 ARRAY ELEMENT 1 HEADER "Equipos" WIDTH 110 ALIGN LEFT
ADD COLUMN TO oLbx AT 2 ARRAY ELEMENT 2 HEADER "P.J." WIDTH 35 ALIGN RIGHT
ADD COLUMN TO oLbx AT 3 ARRAY ELEMENT 3 HEADER "Jugadores inscritos" WIDTH 72 ALIGN RIGHT
ADD COLUMN TO oLbx AT 4 ARRAY ELEMENT 4 HEADER "Jugadores utilizados" WIDTH 74 ALIGN RIGHT
ADD COLUMN TO oLbx AT 5 ARRAY ELEMENT 5 HEADER "Jugadores que marcaron gol" WIDTH 97 ALIGN RIGHT
ADD COLUMN TO oLbx AT 6 ARRAY ELEMENT 6 HEADER "Alineaciones utilizadas" WIDTH 86 ALIGN RIGHT COLOR CLR_GREEN, NIL
ADD COLUMN TO oLbx AT 7 ARRAY ELEMENT 7 HEADER "Jugadores actuando en 80% de PJ" WIDTH 86 ALIGN RIGHT COLOR CLR_BLUE, NIL
ADD COLUMN TO oLbx AT 8 ARRAY ELEMENT 8 HEADER "Jugadores actuando en 60% de PJ" WIDTH 87 ALIGN RIGHT COLOR CLR_BLUE, NIL
ADD COLUMN TO oLbx AT 9 ARRAY ELEMENT 9 HEADER "Promedio de Edad de las Alineaciones" WIDTH 90 ALIGN RIGHT COLOR CLR_BLUE, NIL
ADD COLUMN TO oLbx AT 10 ARRAY ELEMENT 10 HEADER "Detalle de las Alineaciones" WIDTH 120 ALIGN RIGHT COLOR CLR_BLUE, NIL
oLbx:l2007 := .T.
oLbx:nColDividerStyle := LINESTYLE_INSET
oLbx:nRowDividerStyle := LINESTYLE_INSET
oLbx:nRowHeight := 21.69 // Altura entre lineas
oLbx:nHeaderLines := 3
oLbx:nMarqueeStyle := MARQSTYLE_HIGHLCELL // solo ilumina la celda actual
oLbx:lRecordSelector := .T. // poner o no, columna de la flechita de la izquierda
oLbx:bClrStd :={ || IF(oLbx:KeyNo()%2==0, {CLR_BLUE,CLR_LGREEN}, {CLR_BLUE,CLR_LGRAY}) } // colores para todas las lineas
oLbx:lFooter := .T. // Que si/no tendrá footer
oLbx:nFooterLines := 1 // Lineas del footer
oLbx:nFooterHeight := 20 // Altura del footer
oLbx:nFreeze := 2
WITH OBJECT oLbx:oCol(1)
:nFooterType := AGGR_COUNT // Conteo
:cTooltip := "Nombres de Equipos"
:AddBitmap(aGraficos, )
:nHeadBmpNo := 1
END
WITH OBJECT oLbx:oCol(2)
:cTooltip := "Partidos Jugados por cada Equipo"
:oDataFont := {|| oFnt2 }
END
WITH OBJECT oLbx:oCol(3)
:cTooltip := "Número de Jugadores inscritos"
END
WITH OBJECT oLbx:oCol(4)
:cTooltip := "Número de Jugadores utilizados"
END
WITH OBJECT oLbx:oCol(5)
:cTooltip := "Número de Jugadores que marcaron gol"
END
WITH OBJECT oLbx:oCol(6)
:cTooltip := "Número de Alineaciones utilizadas"
:oDataFont := {|| oFnt2 }
END
WITH OBJECT oLbx:oCol(7)
:cTooltip := "Número de jugadores presentes en el 80% de partidos"
END
WITH OBJECT oLbx:oCol(8)
:cTooltip := "Número de jugadores presentes en el 60% de partidos"
END
WITH OBJECT oLbx:oCol(9)
:nFooterType := AGGR_MAX // Máximo
:nFootStrAlign := AL_CENTER // Alinea el texto del footer
:SetProgBar(36, 84)
:cTooltip := {"Promedio de Edad con los 11 iniciales de cada Equipo", "SicefWin "+cVersSW, 1, CLR_WHITE, CLR_CYAN}
END
WITH OBJECT oLbx:oCol(10)
:nHeadStrAlign := AL_CENTER // alinea el texto de la cabecera al centro
:bLClickHeader := {|| oLbx:Gotop()}
:bStrData := { || "<Alineaciones ...>" }
:nEditType := EDIT_BUTTON
:bEditBlock := { | r,c,o | EditarMemo(r,c,o,aEstad[oLbx:KeyNo(),10]) }
:cTooltip := {"Detalle de todas las Alineaciones usadas", "SicefWin "+cVersSW, 1, CLR_WHITE, CLR_CYAN}
:AddBitmap(aGraficos, )
:nHeadBmpNo := 2
END
FOR i=9 TO 1 STEP -1
oLbx:aCols[i]:nHeadStrAlign := AL_CENTER // alinea el texto de la cabecera al centro
oLbx:aCols[i]:bLClickHeader := {|| oLbx:Gotop()}
oLbx:aCols[i]:cOrder := "D"
oLbx:aCols[i]:cSortOrder := i
oLbx:aCols[i]:SortArrayData()
IF(i>2 .AND. i<9, oLbx:aCols[i]:nTotal:=0, )
NEXT
oCol1:=oLbx:InsCol(1) // inserta columna
oCol1:bStrData := { || AllTrim(Str(oLbx:KeyNo(),5)) }
oCol1:nDataStrAlign := 1
oCol1:nHeadStrAlign := AL_CENTER
oCol1:bClrStd := { || { CLR_HRED, IF(oLbx:KeyNo()%2==0, CLR_LGREEN, CLR_LGRAY) } }
oCol1:cHeader := "Nº."
oCol1:nWidth := 24
oCol1:cTooltip := {"Número", "SicefWin "+cVersSW, 1, CLR_WHITE, CLR_CYAN}
oCol1:bLClickHeader := {|| oLbx:Gotop()}
oLbx:Gotop()
REDEFINE BUTTON oBtn[1]n ID 1 OF oDlgEst MESSAGE "Sale de esta pantalla" ACTION oDlgEst:END()
oBtn[1]:cToolTip="Sale de esta pantalla"
REDEFINE BTNBMP oBtn[2] ID 6011 OF oDlgEst RESOURCE "EXCEL16" 2007 MESSAGE "Exporta datos a formato Excel" ;
ACTION oLbx:ToExcel()
oBtn[2]:cToolTip="Exporta datos a formato Excel"
oDlgEst:bKeyDown:={ |nKey,nFlags| IF( nKey==VK_ESCAPE, oDlgEst:End(), ) } // Sale de oDlg al aplastar Escape
oDlgEst:oFont := TFont():New("ARIAL", 0, -11, .F., .T.)
oDlgEst:lHelpIcon:= .F.
ACTIVATE DIALOG oDlgEst CENTERED RESIZE16 ON INIT (oDlgEst:SetIcon(oApp:cIcono), oLbx:MakeTotals())
Saludos
Fernando Espinoza A.