AYUDA CON TREPORT

Post Reply
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

AYUDA CON TREPORT

Post by FranciscoA »

Hola, amigos del foro. ¿Alguien podría facilitarme un pequeño ejemplo con TReport utilizando GRUPOS y SUB-GRUPOS?
¿Es posible?
Gracias de antemano.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
alfonso
Posts: 46
Joined: Fri Mar 09, 2007 1:31 pm
Location: España

Re: AYUDA CON TREPORT

Post by alfonso »

Hola Francisco,

El ejemplo es un bastante antiguo pero puede ser de referencia, si necesitas más dimelo.

//----------------------------------------------------------------------------//

Function lisficha(rad,para)

STATIC oReport
LOCAL oFont1, oFont2

if valtype(para) == 'C'
IF VAL(PARA) = 0
IF !MsgYesNo("Ha seleccionado el total del Club, ; Desea Continuar ?", ;
"Seleccione, Por Favor")
RETURN NIL
ENDIF
ENDIF
ELSE
IF PARA = 0
IF !MsgYesNo("Ha seleccionado el total del Club, ; Desea Continuar ?", ;
"Seleccione, Por Favor")
RETURN NIL
ENDIF
ENDIF
ENDIF

DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10 ITALIC
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-20 BOLD ITALIC

USE FILATEMO ALIAS FILATEMO INDEX FILATEMO NEW
SELECT FILATEMO
IF RAD = 1 .AND. VAL(PARA) != 0
SET RELATION TO FILATEMO -> FILAMAT INTO CLIENTES
COPY TO TEMPORAL.DBF FOR (CLIENTES -> CODIGO = PARA)
CLOSE FILATEMO
USE TEMPORAL ALIAS FILATEMO NEW
ENDIF
IF RAD = 2 .AND. PARA != 0
COPY TO TEMPORAL.DBF FOR (FILATEMO -> FILAMAT = PARA)
CLOSE FILATEMO
USE TEMPORAL ALIAS FILATEMO NEW
ENDIF
USE DEPEN ALIAS DEPENDE INDEX DEPEN NEW
SELECT CLIENTES
SET RELATION TO CLIENTES->CODIGO INTO DEPENDE
USE TABLAFIL ALIAS TABLAFIL INDEX TABLAFIL NEW
SELECT FILATEMO
SET RELATION TO filatemo->filacod INTO tablafil, ;
TO filatemo->filamat INTO clientes ADDITIVE

DBGOTOP()
IF CPREVIO = 'S'
REPORT oReport ;
FONT oFont1,oFont2;
HEADER " "," "," ", ;
SPACE(30)+"*** FICHA DE REGISTRO DE SOCIOS ***", ;
" "," "," "," ", ;
"DEPENDENCIA... "+CLIENTES->CODIGO+' - '+DEPENDE->DEPEN ,;
"N. MATRICULA.. "+STR(CLIENTES->NUMATRI), ;
"NOMBRE........ "+CLIENTES->NOMBRE, ;
"APELLIDOS..... "+OemToAnsi(CLIENTES->APELLIDOS), ;
"DOMICILIO..... "+CLIENTES->DOMICILIO, ;
"MUNICIPIO..... "+CLIENTES->MUNICIPIO, ;
"PROVINCIA..... "+CLIENTES->PROVINCIA+ ;
" D.P.: "+STR(CLIENTES->DISPOST), ;
"SITUACION..... "+CLIENTES->ESTADO, ;
"FECHA DE ALTA. "+DTOC(CLIENTES->FECHALTA), ;
" "," "," " ;
FOOTER OemToAnsi('Club Filat‚lico de Tabacalera, S.A.') ;
CENTER ;
CAPTION "Fichas de Socios" ;
PREVIEW
ELSE
REPORT oReport ;
FONT oFont1,oFont2;
HEADER " "," "," ", ;
SPACE(30)+"*** FICHA DE REGISTRO DE SOCIOS ***", ;
" "," "," "," ", ;
"DEPENDENCIA... "+CLIENTES->CODIGO+' - '+DEPENDE->DEPEN ,;
"N. MATRICULA.. "+STR(CLIENTES->NUMATRI), ;
"NOMBRE........ "+CLIENTES->NOMBRE, ;
"APELLIDOS..... "+CLIENTES->APELLIDOS, ;
"DOMICILIO..... "+CLIENTES->DOMICILIO, ;
"MUNICIPIO..... "+CLIENTES->MUNICIPIO, ;
"PROVINCIA..... "+CLIENTES->PROVINCIA+ ;
" D.P.: "+STR(CLIENTES->DISPOST), ;
"SITUACION..... "+CLIENTES->ESTADO, ;
"FECHA DE ALTA. "+DTOC(CLIENTES->FECHALTA), ;
" "," "," " ;
FOOTER OemToAnsi('Club Filat‚lico de Tabacalera, S.A.') ;
CENTER ;
CAPTION "Fichas de Socios"
ENDIF

COLUMN TITLE "COD." ;
DATA (filatemo->filacod)

COLUMN TITLE "PRODUCTOS SOLICITADOS" ;
DATA OemToAnsi(tablafil->denomina)

COLUMN TITLE "CANTIDAD" ;
DATA EDINUM(filatemo->filacan,"999,999")

IF RAD > 0 .AND. RAD < 3
GROUP ON FILATEMO->FILAMAT ;
FOOTER "" ;
EJECT
ENDIF
oReport:nGroupLine := RPT_NOLINE // no imprime linea separadora
// oReport:oHeader:aFont[3] := { || 2 }
END REPORT

ACTIVATE REPORT oReport ;
ON STARTPAGE (LinBox(oReport,1.3,1.3,.6,.5), ;
Bitmaps(oReport,.3,.3,1,1))
CLOSE FILATEMO
CLOSE TABLAFIL
CLOSE DEPENDE
oFont1:End()
oFont2:End()

RETURN NIL
//----------------------------------------------------------------------------//

Saludos,

Alfonso
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: AYUDA CON TREPORT

Post by FranciscoA »

Hola Alfonso. Muchas gracias por tu ejemplo. Aunque no es precisamente lo que necesitaba, me sirvió para otras ideas que tengo en reportes. Ya lo habia solucionado asi:

GROUP ON alltrim(str(FIELD->CODIGO))+" "+alltrim(field->CLIENTE) FOOTER "TOTAL CLIENTE " ;
HEADER oReport:aGroups[1]:cValue FONT 2 ;
EJECT

if lGrupos
GROUP ON FIELD->grupo ; //SUB AGRUPADO POR FAMILIA O GRUPO
HEADER oReport:aGroups[2]:cValue ;
FOOTER "Total "+oReport:aGroups[2]:cValue FONT 1
endif

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply