nClrPane

nClrPane

Postby Manuel Aranda » Sat Mar 24, 2007 10:27 pm

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
Manuel Aranda
 
Posts: 603
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Raymundo Islas M. » Mon Mar 26, 2007 12:47 am

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
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Manuel Valdenebro » Mon Mar 26, 2007 4:47 am

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
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Esta es la instrucción

Postby ACC69 » Mon Mar 26, 2007 4:44 pm

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,)}
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Postby Raymundo Islas M. » Mon Mar 26, 2007 5:10 pm

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
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Manuel Aranda » Mon Mar 26, 2007 9:49 pm

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

Un saludo,
Manuel
User avatar
Manuel Aranda
 
Posts: 603
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Ale SB » Tue Mar 27, 2007 1:47 am

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
Ale SB
 
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

Postby Raymundo Islas M. » Fri Mar 30, 2007 5:54 am

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: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Raymundo Islas M. » Fri Mar 30, 2007 5:58 am

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
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby jose_murugosa » Fri Mar 30, 2007 10:50 pm

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
jose_murugosa
 
Posts: 1145
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Raymundo Islas M. » Fri Mar 30, 2007 11:23 pm

Hola Jose


Agradezco mucho tu comentario ! :P


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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 138 guests