nClrPane

Post Reply
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

nClrPane

Post by Manuel Aranda »

Después de varias horas con este asunto no doy con la tecla.
En un listbox cambio el color de fondo alternando entre un registro y otro de la forma siguiente:
oLbx:nClrPane:={|| IIF(CLIENTES->(OrdKeyNo())%2==0,CLR_WHITE,CLR_LGRAY)}

Pero lo que quiero hacer es que en un listbox ordenado por un campo clave, me cambie el color alternativamente cuando cambie el valor de ese campo.
A alguien se le ocurre por donde tirar?

Un saludo,
Manuel Aranda
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Manuel

Basta con que agregues un campo adicional ( normalmente uso un numerico de 1 digito ) y al momento de estar "llenando" la base a mostrar vas alternando el valor de ese campo ( normalmente uso 0-1 ) y solo cambias el codigo por esto :

oLbx:nClrPane:={|| IIF(CLIENTES->TuCampo ==1,CLR_WHITE,CLR_LGRAY)}

Asi lo he usado y hace exactamente lo que quieres hacer.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Raymundo Islas M. wrote: Asi lo he usado y hace exactamente lo que quieres hacer.
Ray,

Yo entiendo que lo que Manuel quiere es otra cosa. Tiene un campo clave (por ejemplo, ciudad) y tiene ordenado por este campo la base de datos:

ALICANTE
ALICANTE
ALICANTE
BARCELONA
BARCELONA

MALAGA
MALAGA
MALAGA

Lo que yo entiendo que quiere ( y es muy interesante), es que cada vez que el listbox cambie de ciudad (el bloque de registros) cambie el color.
Creo que con el método del "llenado" la cosa sería complicada, sobretodo, si desde el listbox modificaramos los datos.
Un saludo

Manuel
ACC69
Posts: 619
Joined: Tue Dec 12, 2006 7:34 pm
Contact:

Esta es la instrucción

Post by ACC69 »

Manuel Valdenebro wrote:
Raymundo Islas M. wrote: Asi lo he usado y hace exactamente lo que quieres hacer.
Ray,

Yo entiendo que lo que Manuel quiere es otra cosa. Tiene un campo clave (por ejemplo, ciudad) y tiene ordenado por este campo la base de datos:

ALICANTE
ALICANTE
ALICANTE
BARCELONA
BARCELONA

MALAGA
MALAGA
MALAGA

Lo que yo entiendo que quiere ( y es muy interesante), es que cada vez que el listbox cambie de ciudad (el bloque de registros) cambie el color.
Creo que con el método del "llenado" la cosa sería complicada, sobretodo, si desde el listbox modificaramos los datos.
oLbx:bTextColor := {|nRow,nCol,nStyle| IF(nCol=4 .AND.;
nStyle=0 .AND. ;
S96->REFERE=ALLTRIM(cBuscPal),CLR_GREEN,)}
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola, como se dice : una imagen vale mas que mil palabras :D

A esto me refiero, no se si es lo que Manuel desea.

Image


A diferencia del color alternado por registro, este browse cambia el color por X numero de registros que contenga una poliza.


Saludos a todos
FWH 10.6 + xHarbour + Borland 582
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Muchas gracias, Raymundo. Es lo que buscaba. Me pongo a ello ahora mismo.

Un saludo,
Manuel
User avatar
Ale SB
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

Post by Ale SB »

Raymundo Islas M. wrote:Manuel

Basta con que agregues un campo adicional ( normalmente uso un numerico de 1 digito ) y al momento de estar "llenando" la base a mostrar vas alternando el valor de ese campo ( normalmente uso 0-1 ) y solo cambias el codigo por esto :

oLbx:nClrPane:={|| IIF(CLIENTES->TuCampo ==1,CLR_WHITE,CLR_LGRAY)}

Asi lo he usado y hace exactamente lo que quieres hacer.

Saludos
Buenas Raymundo,

Nao estou entende bem, eu teria q usar alguma funçao ?
Vc poderia me passar algum exemplo ?

Fico grato pela atençao.

@braços Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola, un pequeñito ejemplo, de hecho no tiene gran ciencia hacer esto 8)


REDEFINE LISTBOX lbKrdOpr ;
FIELDS DETKDX->KDAT,DETKDX->KPOL, ..... ;
HEAD "FECHA","POLIZA", ...... ;
bla ;
bla ;
bla ;
OF oFold:aDialogs[7]

bla ;
bla ;
bla ;
lbKrdOpr:nClrPane := { || IIF( DETKDX->KCLR == 0, CLR_A, CLR_B ) } <--- Aqui

Static Function XXXXXXX() // para "llenar" la base o arreglo
LOCAL nQ, nClrFlg := 0
FOR nQ := aKrdDts[4] TO aKrdDts[5]
IF MOVSYS->( DbSeek( DtoS( nQ ) ) )
WHILE MOVSYS->MFECHA == nQ .AND. MOVSYS->( !Eof() )
nKrdxPol := MOVSYS->MPOL
WHILE MOVSYS->MPOL == nKrdxPol .AND. MOVSYS->( !Eof() )
DETKDX->KDAT := XXXXXX
DETKDX->KPOL := YYYYYY
MOVSYS->( DbSkip() )
ENDDO
nClrFlg ++ <--- Aqui
nClrFlg := IIF( nClrFlg == 2, 0, nClrFlg ) <--- Aqui

ENDDO
ENDIF
NEXT
lbKrdOpr:REFRESH()



Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Sorry :oops:

Se me paso la linea donde se graba el valor que indica el color a usar :




Static Function XXXXXXX() // para "llenar" la base o arreglo
LOCAL nQ, nClrFlg := 0
FOR nQ := aKrdDts[4] TO aKrdDts[5]
IF MOVSYS->( DbSeek( DtoS( nQ ) ) )
WHILE MOVSYS->MFECHA == nQ .AND. MOVSYS->( !Eof() )
nKrdxPol := MOVSYS->MPOL
WHILE MOVSYS->MPOL == nKrdxPol .AND. MOVSYS->( !Eof() )
DETKDX->KDAT := XXXXXX
DETKDX->KPOL := YYYYYY
DETKDX->KCLR := nClrFlg <--- Aqui
MOVSYS->( DbSkip() )
ENDDO
nClrFlg ++ <--- Aqui
nClrFlg := IIF( nClrFlg == 2, 0, nClrFlg ) <--- Aqui
ENDDO
ENDIF
NEXT
lbKrdOpr:REFRESH()
FWH 10.6 + xHarbour + Borland 582
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Post by jose_murugosa »

Raymundo,

Que soberbio ejemplo, mezcla de simplicidad, practicidad y buen gusto.
Gracias por compartirlo con nosotros. :D
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola Jose


Agradezco mucho tu comentario ! :P


Saludos
FWH 10.6 + xHarbour + Borland 582
Post Reply