Page 1 of 1

Titulo del Report en cada grupo

PostPosted: Mon Mar 06, 2023 4:50 pm
by FranciscoA
Saludos.
Eso... ¿Cómo se hace para poner el Titulo del Reporte también como encabezado para cada grupo?

Re: Titulo del Report en cada grupo

PostPosted: Tue Mar 07, 2023 2:11 pm
by cmsoft
Francisco:
Si solo necesitas una linea de texto, puedes usar el HEADER del grupo
Si necesitas más datos, puedes hacerlo en forma manual, llamando a una funcion que lo haga en ON STARTGROUP
Ejemplo 1:
Code: Select all  Expand view

REPORT oRep TITLE "Articulos comprados por fecha del " + ;
                  DTOC(mdesde) + " al " + DTOC(mhasta) ;
       FONT  oFont1,oFont2,oFont3 HEADER oApp:nomb_emp , ;
       "Articulos comprados por fecha" CENTER ;
       FOOTER "Hoja:" + STR(oRep:npage,3) ,"Fecha:"+DTOC(DATE()) CENTER;
       PREVIEW CAPTION  "Articulos comprados por fecha"
GROUP oGru ON oQry:Rubro HEADER oQry:rubro FOOTER "Totales Rubro"  FONT 3      
   COLUMN TITLE "Nro.Fact." DATA oQry:numfac   SIZE 15 FONT 1
   COLUMN TITLE "Fecha"     DATA oQry:fecha    PICTURE "@D"   SIZE 10 FONT 1  
COLUMN TITLE "Cantidad"  DATA oQry:cantidad PICTURE "999999999" ;
                            SIZE 10 FONT 2 TOTAL
COLUMN TITLE "Importe"   DATA oQry:precio ;
                         PICTURE "9999999999.99" SIZE 12 FONT 2 TOTAL

oRep:oTitle:aFont[1] := {|| 3 }
oRep:bInit := {|| oQry:GoTop() }
oRep:bSkip := {|| oQry:Skip() }
END REPORT
// Activo el reporte
ACTIVATE REPORT oRep WHILE !oQry:EOF() ON INIT CursorArrow();
                ON STARTPAGE oRep:SayBitmap(.1,.1,"LOGO.JPG",.3,.3);
                ON POSTGROUP oRep:NewLine()
 


Ejemplo 2 (Hay que mejorarlo, pero para ejemplo sirve):
Code: Select all  Expand view

REPORT oRep TITLE "Articulos comprados por fecha del " + ;
                  DTOC(mdesde) + " al " + DTOC(mhasta) ;
       FONT  oFont1,oFont2,oFont3 HEADER oApp:nomb_emp , ;
       "Articulos comprados por fecha" CENTER ;
       FOOTER "Hoja:" + STR(oRep:npage,3) ,"Fecha:"+DTOC(DATE()) CENTER;
       PREVIEW CAPTION  "Articulos comprados por fecha"
GROUP oGru ON oQry:Rubro HEADER oQry:rubro FOOTER "Totales Rubro"  FONT 3      


COLUMN TITLE "Articulo" DATA oQry:detart   SIZE 30 FONT 1
COLUMN TITLE "Codigo"   DATA oQry:codart   SIZE 06 FONT 1
COLUMN TITLE "Cantidad"  DATA oQry:cantidad PICTURE "999999999" ;
                            SIZE 10 FONT 2 TOTAL
COLUMN TITLE "Importe"   DATA oQry:precio ;
                         PICTURE "9999999999.99" SIZE 12 FONT 2 TOTAL

oRep:oTitle:aFont[1] := {|| 3 }
oRep:bInit := {|| oQry:GoTop() }
oRep:bSkip := {|| oQry:Skip() }
END REPORT
// Activo el reporte
ACTIVATE REPORT oRep WHILE !oQry:EOF() ON INIT CursorArrow();
                ON STARTGROUP ReplicaTitulo(oRep,mdesde,mhasta) ON STARTPAGE oRep:SayBitmap(.1,.1,"LOGO.JPG",.3,.3);
                ON POSTGROUP oRep:NewLine()
oQry:End()
RETURN

STATIC FUNCTION ReplicaTitulo(oRep,mdesde,mhasta)
oRep:NewLine()
oRep:TotalLine( RPT_DOUBLELINE )
oRep:Say(1,"Articulos comprados por fecha del " + ;
                  DTOC(mdesde) + " al " + DTOC(mhasta) ,2)
oRep:NewLine()
RETURN nil
 

Re: Titulo del Report en cada grupo

PostPosted: Tue Mar 07, 2023 3:30 pm
by FranciscoA
Cesar, gracias por responder.
Voy a probar con la segunda opción que es la que necesito.

Con GROUP ON... EJECT se puede pero salta a siguiente hoja por cada grupo, y lo que se quiere es que quepan al menos dos grupos en cada hoja, cuyos HEADERs sean iguales al REPORT TITLE .

Con TPRINTER hice algo similar en muchas ocasiones hace tiempo, pero quiero hacerlo con TREPORT.

Saludos.