Newsgroup: it.comp.lang.vo-clipper
Titolo: Cambiare colore in una cella di un databrowser

Ho inserito una subdatawindow in una datadialog e vi ho associato un
DBSERVER in vista Browse. Ora a seconda del contenuto di un campo del
dbserver (un campo logico per la precisione), vorrei cambiare il colore di
un'altra cella dello stesso DBSERVER. Ho provato con oColumn:TextColor
nell'ambito del metodo POSTINIT della mia SUBDATAWINDOW dove č associato il
DBSERVER ma non so come imporre la condozione di variazione del colore.
Utilizzo VO 2.6. C'e' qualcuno che ha fatto qualcosa di simile?
Grazie a chiunque possa aiutarmi.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 nell'ambito del metodo POSTINIT della mia SUBDATAWINDOW dove è associato 


 ha scritto nel messaggio 
news:44944813$0$10056$4faf...@reader3.news.tin.it...


 Grazie per la tua disponibilità. 
mds...@alice.it
OPS!
c'è qualcosa che che il vecchio browser fa e bBrowser no?
ad oggi non ho ancora trovato una situazione simile :-)
comunque è codice "vecchio" e devo cercarlo in qualche MEF archiviato
prima o poi lo trovo e lo posto qui
ciao
Massimo Bighelli

Dovrebbe essere abbastanza chiaro e dovrebbe esserci tutto
comunque č un'idea di come fare
BrwCOMA č una DW con il mio browser sul quale vado ad aggiungere una colonna 
"colorata"
ARCA_DataColumn č la classe da cui eredita la colonna "colorata"
(nell'IDE browserdatacolumn inherit from)
nel postinit() della DW c'č roba varia ed anche il codice che aggiunge la 
colonna calcolata da codeblock e la colora
CLASS ARCA_DataColumn INHERIT DataColumn
// due stati: vailid / invalid
PROTECT oValidTextColor    AS Color
PROTECT oValidBackground   AS Brush
PROTECT oInvalidTextColor  AS Color
PROTECT oInvalidBackground AS Brush
METHOD Init( noFieldWidth, coColumnID, symHyperlabel ) CLASS ARCA_DataColumn
 SUPER:Init( noFieldWidth, coColumnID )
 oValidTextColor    := Color{ COLORblack }
 oValidBackground   := Brush{ Color{ COLORwhite } }
 oInvalidTextColor  := Color{ COLORBLACK }
 oInvalidBackground := Brush{ Color{ COLORCYAN } }
RETURN SELF
METHOD Colora_Col_Valore(uValue) CLASS ARCA_DataColumn
// riceve uValue ed a seconda del valore ricevuto colora la colonna
 IF IsInstanceOf(SELF:owner:owner:server,#DBSERVER) // se ho un server 
aperto nella DW
  // a seconda del file utilizzato dal browser...
  IF SELF:owner:owner:server:filespec:filename = 'PLCOMM00'
   IF Instr(Left(uValue,3),"(A)(B)(S)")  // a seconda del valore imposto i 
colori
   // SELF:CellTextColor  := oValidTextColor
   // SELF:CellBackground := oValidBackground
   ELSE
    SELF:CellTextColor  := oInvalidTextColor
    SELF:CellBackground := oInvalidBackground
   ENDIF
  ENDIF
  IF SELF:owner:owner:server:filespec:filename = 'STCAMP00'
   IF Left(uValue,3) = "(C)"
    SELF:CellTextColor  := oInValidTextColor
    SELF:CellBackground := oInValidBackground
   ELSE
   // SELF:CellTextColor  := oInvalidTextColor
   // SELF:CellBackground := oInvalidBackground
   ENDIF
  ENDIF
  IF SELF:owner:owner:server:filespec:filename = 'PLATTP00'
   IF Left(uValue,3) = "(N)"
   // SELF:CellTextColor  := oValidTextColor
   // SELF:CellBackground := oValidBackground
   ELSE
    SELF:CellTextColor  := oInvalidTextColor
    SELF:CellBackground := oInvalidBackground
   ENDIF
  ENDIF
 ENDIF
 RETURN NIL
METHOD PostInit(oWindow,iCtlID,oServer,uExtra) CLASS BrwCOMA
 LOCAL I AS INT
 LOCAL oDBCol     AS datacolumn
 LOCAL oDBWDESCOM AS datacolumn
 IF uExtra = 'S'
  SELF:simulato := .t.
  SELF:Caption := SELF:Caption + ' SIMULATO'
 ELSE
  SELF:simulato := .f.
 ENDIF
 // aggiungo la colonna calcolata e colorata ARCA_DataColumn
 //---------------------------------------------------------
 oDBWDESCOM := ARCA_DataColumn{f_desc50{}}  // fieldspec della colonna
 oDBWDESCOM:Width := 50
 oDBWDESCOM:HyperLabel := 
HyperLabel{#WDESCOM,"Descrizione",NULL_STRING,NULL_STRING}
 oDBWDESCOM:Caption := "Descrizione"
 oDBWDESCOM:BlockOwner := SELF:SERVER
 oDBWDESCOM:Block := {|O|'('+O:STATO+')'+Left(O:DESCOM,47)}
 SELF:Browser:AddColumn(oDBWDESCOM,4)  // la aggiungo come colonna 4
 oDBWDESCOM:EnableCellDraw(#Colora_Col_Valore)  // sym metodo che 
attribuisce i colori
 // readonly delle colonne browse (tranne alcune)
 //----------------------------------------------
 FOR i = 1 UPTO SELF:Browser:ColumnCount
  oDBCol := SELF:BROWSER:GETCOLUMN(i)
  IF !Instr(oDBCol:Name,'STATO§')
   oDBCol:setstandardstyle(GBSREADONLY)
  ENDIF
 NEXT
 // in entrata sempre tabella
 //--------------------------
 SELF:ViewAs(#BrowseView)
 //-----------------------------------------
 // SISTEMAZIONE TOOLBAR UNA VOLTA PER TUTTE
 //-----------------------------------------
 SELF:ToolBar := SELF:ContextMenu:ToolBar
 ...
 RETURN NIL
ciao
Massimo Bighelli
ARCA Sistemi S.r.l.