CENTRADO DE CABECERAS EN TREPORT

CENTRADO DE CABECERAS EN TREPORT

Postby rterraz » Sun Aug 30, 2020 4:10 pm

Hola amigos.
Alguien sabe como hacer para alinear las cabeceras y los totales de las columnas de un treport ?
Las cabeceras las alinea siempre segun el alineamiento de la columna correspondiente, como hago para cambiarlo y ponerlas todas centradas por ejemplo?
He probado con oHeader (ej:oRpt:oHeader:aPad[1] := RPT_CENTER etc,etc y nada funciona
Los totales de las columnas numericas salen centrados y quisiera alinearlos a la derecha !
Saludos a todos
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: CENTRADO DE CABECERAS EN TREPORT

Postby Armando » Sun Aug 30, 2020 4:24 pm

Rterraz:

A ver si esto es lo que buscas:

En encabezados del reporte hay dos grupos, HEADER propiamente y TITLE, en cada uno puede
haber uno o mas renglones contenidos en arrays, entonces:

Code: Select all  Expand view  RUN

        oReporte:oHeader:aPad[1] := RPT_LEFT // aPad[1] se refiere al primer renglón de encabezados
        oReporte:oTitle:aPad[2] := RPT_RIGHT  // aPad[2] se refiere al segundo renglón de títulos
 


Ahora para alinear los renglones de detalle:

Code: Select all  Expand view  RUN

        COLUMN TITLE "Nombre"   DATA ALLTRIM(oRsCli:Fields("CLI_NOM"):Value)    SIZE 55 LEFT   // Observa la clausula de alineación
        COLUMN TITLE "RFC"      DATA ALLTRIM(oRsCli:Fields("CLI_RFC"):Value)    SIZE 14 LEFT
        COLUMN TITLE "Número"   DATA oRsCli:Fields("CLI_CLI"):Value             SIZE  6 RIGHT PICTURE "@Z 99999"
 


Finalmente para alinear los renglones de totales

Code: Select all  Expand view  RUN

oReporte:SAY( 2,TRANSFORM(nTotGui,"99,999"),,RPT_RIGHT)  // Observa las contantes con nombre RPT_RIGHT
oReporte:SAY( 3,"Guías",,RPT_LEFT)                                       // RPT_LEFT y también existe RPT_CENTER
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3231
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: CENTRADO DE CABECERAS EN TREPORT

Postby rterraz » Sun Aug 30, 2020 8:05 pm

hola Armando, te agradezco tu respuesta
la linea de totales funciona perfecto
los header me ignoran, lo justifica siempre como justifica la data de la columna, sera porque tengo 2 lineas en cada header ?
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: CENTRADO DE CABECERAS EN TREPORT

Postby Armando » Sun Aug 30, 2020 8:27 pm

RTerraz:

Va un ejemplo más completo

Code: Select all  Expand view  RUN

REPORT oReporte CAPTION "Ventas del mes por cliente" PREVIEW;
    HEADER ALLTRIM((cEmpresa)->EMP_RAZ),;
    aMes[nMes]+"/"+STR(nAmo,4,0),;
    "Ventas del mes por cliente",;
    "" CENTER;
    TITLE "Fecha: "+Date2Txt(DATE(),,,,,,),;
    "Hoja No:"+STR(oReporte:nPage,3);
    FONT aFnt[1],aFnt[2],aFnt[3];
    PEN aPen[1],aPen[2]

    COLUMN TITLE "Guia"                 DATA (cDetHDev)->DET_NDG SIZE   6 RIGHT
    COLUMN TITLE "Destino"              DATA (cCiudades)->CIU_NOM SIZE 35 LEFT
    COLUMN TITLE "Undd"                 DATA (cFacturas)->FAC_CAM SIZE  5 RIGHT
    COLUMN TITLE "Operador"             DATA (cFacturas)->FAC_CVE SIZE  5 LEFT
    COLUMN TITLE "Importe"              DATA (cDetHDev)->DET_IDG SIZE   9 RIGHT TOTAL PICTURE "99,999,999.99"
    COLUMN TITLE "Seguro"               DATA (cFacturas)->FAC_SEG SIZE  9 RIGHT TOTAL PICTURE "99,999,999.99"

    GROUP gCliente ON (cDetHDev)->DET_CLI;
        FOOTER "Totales: " + cDetCli + SPACE(5) + ALLTRIM((cClientes)->CLI_NOM)  ;
                                + SPACE(5) + STR(oReporte:aGroups[1]:nCounter) + " Guias" FONT 2

    gCliente:bHeader := {|| "** "+(cDetHDev)->DET_CLI}

    END REPORT

    IF oReporte:lCreated
        oReporte:cGrandTotal    := "GRAN TOTAL"
        oReporte:oHeader:aFont[1] := {||3}
        oReporte:oHeader:aFont[2] := {||3}
        oReporte:SetTxtColor(CLR_BLACK,1)   // Color del texto de la hoja default NEGRO
        oReporte:SetTxtColor(CLR_HRED,2)        // Color de encabezado y totales del grupo
        oReporte:SetTxtColor(CLR_HRED,3)        // Color para el primer titulo del encabezado
        oReporte:SetPenColor(CLR_HBLUE)     // Color para las líneas
        oReporte:SetShdColor(CLR_YELLOW)        // Color para el sombreado

        oReporte:oHeader:aPad[2] := RPT_RIGHT

        oReporte:oTitle:aPad[1] := RPT_LEFT
        oReporte:oTitle:aPad[2] := RPT_RIGHT
        oReporte:nDnMargin := 300
        oReporte:lPageTotal := (.F.)
        oReporte:bPostEnd       := { || Totales(oReporte,nTotGui)}
    ENDIF

    ACTIVATE REPORT oReporte FOR (cCartera)->(DBSEEK(STR((cDetHDev)->DET_NDG,6,0)));
        WHILE ! (cDetHDev)->(EOF());
        ON STARTPAGE (Alinea(oReporte,1,2));
        ON STARTGROUP (cDetCli := (cDetHDev)->DET_CLI,oReporte:EndLine(),;
                            (cClientes)->(DBSEEK((cFacturas)->FAC_CLI)));
        ON ENDGROUP nTotGui += oReporte:aGroups[1]:nCounter
        Cierra()
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3231
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: CENTRADO DE CABECERAS EN TREPORT

Postby rterraz » Sun Aug 30, 2020 9:18 pm

Hola de nuevo,
Creo que me he explicado mal, lo que necesito centrar son los TITULOS de las columnas, creo que estaba usando headers en forma equivocada
Excuse me
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

Re: CENTRADO DE CABECERAS EN TREPORT

Postby nageswaragunupudi » Mon Aug 31, 2020 2:46 am

rterraz wrote:Hola amigos.
Alguien sabe como hacer para alinear las cabeceras y los totales de las columnas de un treport ?
Las cabeceras las alinea siempre segun el alineamiento de la columna correspondiente, como hago para cambiarlo y ponerlas todas centradas por ejemplo?
He probado con oHeader (ej:oRpt:oHeader:aPad[1] := RPT_CENTER etc,etc y nada funciona
Los totales de las columnas numericas salen centrados y quisiera alinearlos a la derecha !
Saludos a todos


Column titles, data and totals use same alignment.
What you want can not be achieved except by change in TRColumn class in rcolumn.prg.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: CENTRADO DE CABECERAS EN TREPORT

Postby nageswaragunupudi » Mon Aug 31, 2020 3:41 am

Please try making these changes in
\fwh\source\classes\rcolumn.prg

Add this new data to the class declartion
Code: Select all  Expand view  RUN
DATA nAlignTitle


Then change the last line of code in the METHOD SayTitle( .... )

Existing code in the last line:
Code: Select all  Expand view  RUN
  ::oReport:oDevice:Say(nRow, nCol, cTitle, oFont, ::nWidth,;
                         ::oReport:aClrText[nFont],,::nPad-1)
 


Replace this line with this new line of code:
Code: Select all  Expand view  RUN
  ::oReport:oDevice:Say(nRow, nCol, cTitle, oFont, ::nWidth,;
                         ::oReport:aClrText[nFont],,IfNil( ::nAlignTitle, ::nPad ) - 1 )
 


Include this revised rcolumn.prg in your project.

In your application, define the COLUMN like this
Code: Select all  Expand view  RUN
  COLUMN oCol TITLE "NAME" DATA FIELD->FIRST FONT 1
   oCol:nAlignTitle := RPT_CENTER
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: CENTRADO DE CABECERAS EN TREPORT

Postby rterraz » Mon Aug 31, 2020 12:14 pm

Estimado Sr Rao
Muchas gracias por su respuesta y por su inestimable ayuda
Saludos
User avatar
rterraz
 
Posts: 182
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 55 guests