Page 1 of 2

SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 2:49 am
by FranciscoA
Hola amigos del Foro. Para aquellos que gusten de usar sombreados (cualquier color) los Titulos de columnas en oReport, aquí les dejo este pequeño aporte.

CLASS TReport

Code: Select all  Expand view
  DATA lColTitleShadow, nColTitleClrShadow, oColTitleShdBrush    //FranciscoA 26/06/2012
   METHOD ShadowColTitle( nHeight )  //FranciscoA 26/06/2012
 


En METHOD NEW()
Code: Select all  Expand view
  ::lColTitleShadow := .f.   //FranciscoA 26/06/2012
   ::nColTitleClrShadow   := 15657706  //FranciscoA 26/06/2012


EN METHOD END()
//Despues de estas lineas que aparecen dos veces.
if ::oShdBrush != nil
::oShdBrush:end()
endif
Code: Select all  Expand view
     if ::oColTitleShdBrush != nil   //FranciscoA 26/06/2012
         ::oColTitleShdBrush:End()
      endif
 


EN METHOD COLTITLE()
//Despues de esta linea...
::nRow := ::nTitleRow
Code: Select all  Expand view
  ::ShadowColTitle( ::nStdLineHeight * ::nMaxTitle )  //FranciscoA 26/06/2012
 


Despues del Method ColTitle() //Basado en el Method Shadow de esta misma classe)
Code: Select all  Expand view
//-----------------------------------------//FranciscoA 26/06/2012
METHOD ShadowColTitle( nHeight ) CLASS TReport
   local nHeightAdjust
   local nFor, nCols, nGrid

   if ! ::lColTitleShadow
      return nil
   endif

   nCols := Len( ::aColumns )

   if ::oColTitleShdBrush == nil
      DEFINE BRUSH ::oColTitleShdBrush COLOR ::nColTitleClrShadow
   endif

   for nfor := 1 to nCols

         if ::aColumns[ nFor ]:lGrid
            nGrid := ::aPen[ ::aColumns[ nFor ]:nPen ]:nWidth * 2
         else
            nGrid := 0
         endif

         nHeightAdjust := Int( ::oPenHorz:nWidth*5)

         SetbkMode( ::oDevice:hDCOut, 1 )

        ::oDevice:FillRect( { ::nRow + nHeightAdjust,;
                              ::aCols[ nFor ] - nGrid,;
                              ::nRow + nHeight + nHeightAdjust*3 ,;
                              ::aCols[ nFor ] + ::aColumns[ nFor ]:nWidth + nGrid },;
                              ::oColTitleShdBrush )

   next

return nil
 


Espero les sea de alguna utilidad.

Saludos.

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 2:51 am
by FranciscoA
Se me olvidaba. Su uso es:

Code: Select all  Expand view
       oReport:lColTitleShadow := .t.
        oReport:nColTitleClrShadow := 12513020


ACTIVATE REPORT oReport WHILE !oList:Eof()

Si se usa  oReport:lColTitleShadow := .t., pero se omite el color, toma por defecto un color plomo leve.
Saludos.

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 3:14 am
by Bayron
Francisco,

Podrías colocar una imagen????

Gracias

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 4:08 am
by FranciscoA
Bayron, aquí están.
Image

Uploaded with ImageShack.us

Saludos

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 1:39 pm
by Bayron
Muy buen trabajo, se ve estupendo...
Siempre me ha gustado la vistosidad...

Gracias por compartir tu aporte...

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Jun 27, 2012 5:47 pm
by Manuel Aranda
Francisco, muchas gracias por compartirlo. Le da un toque de vistosidad.

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Wed Feb 11, 2015 1:40 pm
by armando.lagunas
Estimados:

esto se puede aplicar a los totales de un grupo o al total final???

gracias

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Thu Feb 12, 2015 12:13 pm
by Marcelo Via Giglio
Holas,

prueba esto que hice varios años atras, no recuerdo la versión de FW. El ejemplo tiene un generador de código para que hagas copy/paste a tu proyecto con la configuracion del report

https://app.box.com/s/d2d9ehduq9x4c6clr1jrw56szm4shmdq

Ojala algún momento se lo pueda mejorar, limpiar e incorporar en el oficial de FW asi como se hizo con el preview ( prueben navegar oprimiendo el boton derecho sobre el preview)

Saludos

Marcelo

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Thu Feb 12, 2015 1:26 pm
by armando.lagunas
gracias

lo probare...

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Thu Feb 12, 2015 2:23 pm
by karinha
Code: Select all  Expand view

   IF !oReport:lCreated
      RETURN NIL
   ELSE
      oReport:SetTxtColor(CLR_HBLUE,1)
      oReport:SetTxtColor(CLR_HRED, 2)
      oReport:SetTxtColor(CLR_HBLUE,3)
      oReport:SetPenColor(CLR_HBLUE  )
      oReport:SetShdColor(CLR_HCYAN  )
   ENDIF
 


Saludos.

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Mon Mar 20, 2023 1:58 pm
by karinha

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Mon Mar 20, 2023 6:48 pm
by FranciscoA
Saludos João. No es ninguna molestia.

//TITLE DEL REPORT EN COLOR
//Francisco J. Alegria P.
//FW1204 - CLASS TREPORT modificada

Code: Select all  Expand view
#include "fivewin.ch"
#include "report.ch"


function Main()

   local oRep, oFont
   local nLine := 0

   USE CUSTOMER NEW SHARED
   GO TOP

   DEFINE FONT oFont NAME "TAHOMA"  SIZE 0,-12

   REPORT oRep PREVIEW FONT oFont

   COLUMN TITLE "LINE"   DATA nLine          FONT 1
   COLUMN TITLE "NAME"   DATA FIELD->FIRST   FONT 1
   COLUMN TITLE "CITY"   DATA FIELD->CITY    FONT 1
   COLUMN TITLE "SALARY" DATA FIELD->SALARY  FONT 1

   ENDREPORT

   oRep:bInit        := { || nLine := 0 }
   oRep:bStartRecord := { || nLine++ }

   oRep:lColTitleShadow := .t.
   oRep:nColTitleClrShadow := 12513020

   ACTIVATE REPORT oRep  //FOR RECNO() % 5 == 0

   RELEASE FONT oFont
   CLOSE CUSTOMER

return nil
 

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Mon Mar 20, 2023 7:14 pm
by karinha
FranciscoA wrote:Saludos João. No es ninguna molestia.

//TITLE DEL REPORT EN COLOR
//Francisco J. Alegria P.
//FW1204 - CLASS TREPORT modificada

Code: Select all  Expand view
#include "fivewin.ch"
#include "report.ch"


function Main()

   local oRep, oFont
   local nLine := 0

   USE CUSTOMER NEW SHARED
   GO TOP

   DEFINE FONT oFont NAME "TAHOMA"  SIZE 0,-12

   REPORT oRep PREVIEW FONT oFont

   COLUMN TITLE "LINE"   DATA nLine          FONT 1
   COLUMN TITLE "NAME"   DATA FIELD->FIRST   FONT 1
   COLUMN TITLE "CITY"   DATA FIELD->CITY    FONT 1
   COLUMN TITLE "SALARY" DATA FIELD->SALARY  FONT 1

   ENDREPORT

   oRep:bInit        := { || nLine := 0 }
   oRep:bStartRecord := { || nLine++ }

   oRep:lColTitleShadow := .t.
   oRep:nColTitleClrShadow := 12513020

   ACTIVATE REPORT oRep  //FOR RECNO() % 5 == 0

   RELEASE FONT oFont
   CLOSE CUSTOMER

return nil
 


Gracias mi amado Maestro. Como hago con el efecto PIJAMA(zebrado)?

Gracias.

Regards, saludos.

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Mon Mar 20, 2023 10:09 pm
by cmsoft
Jao, prueba asi para efecto pijama:
Code: Select all  Expand view

#include "fivewin.ch"
#include "report.ch"


function Main()

   local oRep, oFont
   local nLine := 0

   USE CUSTOMER NEW SHARED
   GO TOP

   DEFINE FONT oFont NAME "TAHOMA"  SIZE 0,-12

   REPORT oRep PREVIEW FONT oFont

   COLUMN TITLE "LINE"   DATA nLine          FONT 1 SHADOW
   COLUMN TITLE "NAME"   DATA FIELD->FIRST   FONT 1 SHADOW
   COLUMN TITLE "CITY"   DATA FIELD->CITY    FONT 1 SHADOW
   COLUMN TITLE "SALARY" DATA FIELD->SALARY  FONT 1 SHADOW

   ENDREPORT

   oRep:bInit        := { || nLine := 0 }
   oRep:bStartRecord := { || nLine++ }

   oRep:lColTitleShadow := .t.
   oRep:nColTitleClrShadow := 12513020

   oRep:oShdBrush := TBrush():New(,nRgb(219,229,241))
   oRep:bSkip := {|| (DBSKIP(),IF(RECNO() % 2 =0 , oRep:lShadow :=.f.,oRep:lShadow :=.t.))}

   ACTIVATE REPORT oRep  //FOR RECNO() % 5 == 0

   RELEASE FONT oFont
   CLOSE CUSTOMER

return nil
 

Re: SHADOW EN TIT DE COLS - PEQUEÑO APORTE

PostPosted: Tue Mar 21, 2023 1:47 pm
by karinha
Pronto César. Simplesmente perfecto. REPORT.PRG modificada.

Download completo para testes:

https://mega.nz/file/IctHxYpa#z8WfpbD9x-uRZgy8qk4-dbmPxZKXTAb8R7y9LE0vD-s

Muchas gracias César y FranciscoA.

Regards, saludos.