I use a special dialog ( nOR( WS_CHILD, 4 ))
and I put xbrowse into
Now I use this :
Code: Select all | Expand
App():oDlg:NewGrid( nSplit )
oApp():oGrid:nColDividerStyle := LINESTYLE_BLACK
oApp():oGrid:nRowDividerStyle := LINESTYLE_FORECOLOR
oApp():oGrid:nMarqueeStyle :=MARQSTYLE_HIGHLCELL
oApp():oGrid:lColDividerComplete := .T.
oApp():oGrid:lRecordSelector := .F.
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:bStrData := { || (oDCli)->NUMCLI}
oCol:cHeader := "Codice"
oCol:nWidth := 80
oCol:nHeadBmpNo := 1
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(1,oDCli), oApp():oTab:nOption:=1,oApp():oTab:refresh()) }
//PER LA SELEZIONE
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("C_Pal")
oCol:AddResource("STATO3")
oCol:bBmpData := { || Ds_Mar(1,2)}
oCol:cHeader := ""
oCol:nWidth := 25
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:bStrData := { || (oDCli)->NOMEINTERO}
oCol:cHeader := "Cognome Nome"
oCol:nWidth := 250
oCol:nHeadBmpNo := 2
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(2,oDCli), oApp():oTab:nOption:=2,oApp():oTab:refresh()) }
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:AddResource("UOMO")
oCol:AddResource("DONNA")
* oCol:bStrData := { || (oDCli)->SESSO}
oCol:bBmpData := { || IF( ALLTRIM(UPPER("UOMO")) $ ALLTRIM(UPPER((oDCli)->SESSO)),3,4)}
oCol:cHeader := "Sesso"
oCol:nWidth :=40
oCol:nHeadBmpNo := 2
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(3,oDCli) , oApp():oTab:nOption:=3,oApp():oTab:refresh()) }
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("FONDATORE")
oCol:AddResource("ORDINARIO")
oCol:AddResource("SOSTENITORE")
oCol:AddResource("ALTRO")
*oCol:bStrData := { || (oDCli)->TIPO}
oCol:cHeader := "Adesione"
* oCol:bEditValue := { || (oDCli)->TIPO }
oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)
oCol:bBmpData := { || (oDCli)->TIPO}
oCol:nWidth := 30
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:AddResource("ATTIVO")
oCol:AddResource("NOATTIVO")
*oCol:bStrData := { || (oDCli)->STATO}
oCol:cHeader := "Status"
oCol:nHeadBmpNo := 2
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bBmpData := { || iif( (oDCli)->STATO, 3, 4) }
oCol:bLClickHeader :={ ||(Sel_Index(5,oDCli) , oApp():oTab:nOption:=5,oApp():oTab:refresh()) }
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:nHeadBmpNo := if( (oDCli)->( ORDNUMBER() ) == 6, 1, 2)
oCol:nHeadBmpAlign := AL_RIGHT
oCol:bLClickHeader :={ ||(Sel_Index(7,oDCli) , oApp():oTab:nOption:=7,oApp():oTab:refresh()) }
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\GIOVANE.BMP")
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\PENSIONATO.BMP")
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\STUDENTE.BMP")
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\ESPERTO.BMP")
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\OBIETTORE.BMP")
oCol:AddBmpFile(".\BITMAPS\MENU\GRADI\REGIONALE.BMP")
oCol:bStrData := { || (oDCli)->ATTIVITA}
oCol:cHeader := "Tipo"
oCol:bEditValue := { || (oDCli)->ATTIVITA }
oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)
oCol:bBmpData := { || (oDCli)->attivita + 2}
oCol:nWidth :=40
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:cHeader := "Grado"
oCol:nHeadBmpNo := if( (oDCli)->( ORDNUMBER() ) == 7, 1, 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 + 2}
oCol:nWidth :=40
oCol:= oApp():oGrid:AddCol()
oCol:bStrData := { || CF((oDCli)->NASCITA)}
oCol:cHeader := "Data di nascita"
oCol:nWidth := 90
oCol:= oApp():oGrid:AddCol()
oCol:bStrData := { || (oDCli)->LUO_NASC }
oCol:cHeader := "Luogo di Nascita"
oCol:nWidth := 150
oCol:= oApp():oGrid:AddCol()
oCol:bStrData := { || (oDCli)->INDIRIZZO }
oCol:cHeader := "Indirizzo"
oCol:nWidth := 200
oCol:= oApp():oGrid:AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:bStrData := { || (oDCli)->LOCALITA }
oCol:cHeader := "Località"
oCol:nWidth := 100
oCol:bLClickHeader :={ ||(Sel_Index(4,oDCli), oApp():oTab:nOption:=4,oApp():oTab:refresh()) }
oApp():oGrid:nFreeze :=3
oApp():oGrid:SetRDD()
* oApp():oGrid:bClrStd := { || Colores(oDCli) }
* oApp():oGrid:bClrStd := {|| {CLR_WHITE, CLR_BLACK} }
* oApp():oGrid:cBmpAdjBrush :=".\bitmaps\pclogog.BMP"
oApp():oGrid:bClrStd := { || Colores(oDCli) }
oApp():oGrid:SetBackGround( ".\bitmaps\pclogog.BMP" )
oApp():oGrid:CreateFromCode()
oApp():oGrid:bChange :={ || (RefreshCont(oCont,oDCli)) }
oApp():oGrid:bRClicked := {|nRow,nCol| Disp_Men(oApp():oDlg,nRow,nCol,oDCli) }
oApp():oGrid:bKeyDown :={|nKey| Val_nKey(nKey,oApp():oDlg)
I can see the bitmaps but the bar is on each cell and not on each row as U can see here :

I cannot use the backgroud because in this mode it not is usefull...