FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour AYUDA CON TREPORT
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
AYUDA CON TREPORT
Posted: Sun Mar 15, 2009 01:08 PM

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.



Fwxh-MySql-TMySql
Posts: 46
Joined: Fri Mar 09, 2007 01:31 PM
Re: AYUDA CON TREPORT
Posted: Thu Mar 26, 2009 08:30 AM

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

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: AYUDA CON TREPORT
Posted: Thu Mar 26, 2009 02:10 PM

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.



Fwxh-MySql-TMySql

Continue the discussion