Hola, amigos del foro. ¿Alguien podría facilitarme un pequeño ejemplo con TReport utilizando GRUPOS y SUB-GRUPOS?
¿Es posible?
Gracias de antemano.
AYUDA CON TREPORT
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
AYUDA CON TREPORT
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Re: AYUDA CON TREPORT
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
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
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: AYUDA CON TREPORT
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.
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
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql