your sample run ok but I must correction this sources
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:nHeadBmpNo := 2
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(7,oDCli) , oApp():oTab:nOption:=7,oApp():oTab:refresh()) }
oCol:AddResource("DOCENTE")
oCol:AddResource("ALUNNO")
oCol:AddResource("CARTELLA")
oCol:AddResource("GENITORE")
oCol:AddResource("ESTERNO")
oCol:bStrData := { || (oDCli)->ATTIVITA}
oCol:cHeader := "Tipo"
oCol:bEditValue := { || (oDCli)->ATTIVITA }
oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)
oCol:bBmpData := { || (oDCli)->Attivita}
oCol:nWidth :=40
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:cHeader := "Grado"
oCol:nHeadBmpNo := 2
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(6,oDCli) , oApp():oTab:nOption:=6,oApp():oTab:refresh()) }
oCol:AddResource("GRADO1")
oCol:AddResource("GRADO2")
oCol:AddResource("GRADO3")
oCol:AddResource("GRADO4")
oCol:AddResource("GRADO5")
oCol:AddResource("GRADO6")
oCol:AddResource("GRADO7")
oCol:AddResource("GRADO8")
oCol:AddResource("GRADO0")
oCol:bStrData := { || (oDCli)->GRADO}
oCol:bBmpData := { || (oDCli)->GRADO}
oCol:nWidth :=40
.......
Stat FUNC Sel_Index(n,cdbf)
// 1 3 4 6 11 7 8
(cdbf)->(OrdSetFocus(n))
if n = 1
oApp():oGrid:aCols[1]:nHeadBmpNo := 1
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 2
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 1
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 3
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 1
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 4
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo :=1
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 5
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 1
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 6
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 1
oApp():oGrid:aCols[7]:nHeadBmpNo := 2
elseif n = 7
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 1
//aggiungere per tipo
endif
(cdbf)->(DBGoTop())
oApp():oGrid:Refresh()
oApp():oGrid:SetFocus()
RETURN (NIL)