Totales de Report.

Totales de Report.

Postby Garbi » Mon Jan 30, 2017 12:17 pm

Hola, por fin estoy terminando el modulo de estanterias pero al hacer el report tengo que hacer totales cuando:
1 : Cambio de Columna
2 : Cambio de profundidad (una estanteria detras de la otra)
3: Total de la estanteria

El problema que podeis comprobar tanto con listado desglosado como comprimido no me sale correctamente,
Os adjunto dos fotos de como salen los report y el codigo para ver si podeis echarme una mano :

Gracias:

Deberia ir primero el Total de Columna y despues el Total de Profundo,

Image

Image

Aqui el codigo:

Code: Select all  Expand view
olimprimir:=.f.
   vlistado := 1
   vorden   := 1

   DEFINE DIALOG odimprimir RESOURCE "IESTANTERIA";
      TITLE  "Opciones Impresion";
      OF oApp:aMod[20]:oWnd

   REDEFINE radio gvlistado var vlistado ID 101,102 OF odimprimir
   REDEFINE radio gvorden   var vorden   ID 103,104 OF odimprimir  when vlistado = 2


   REDEFINE BTNBMP ID 500  RESOURCE "ACEPTAR" OF odimprimir;
                  ACTION (olimprimir:=.t. , odimprimir:End() )

  REDEFINE BTNBMP ID 501  RESOURCE "SALIR" OF odimprimir ACTION (olimprimir := .f., odimprimir:End()) ;
           MESSAGE "Cancelar Impresion"


    ACTIVATE DIALOG odimprimir CENTER


  if olimprimir = .f.

     return nil

  endif

if vlistado != 3
   lcancel:=printersetup()
   if lcancel = 0
      return nil
   endif
endif


*if vlistado = 1

    (cestanter)->(Dbgotop())
     timprimir:={}
     do while !eof()
        vestanteria:= (cestanter)->estanteria
        vdetalle   := (cestanter)->detalle
        vcolumna   := (cestanter)->columna
        vfila      := (cestanter)->filas
        vprofundo  := (cestanter)->profundo
        for p:= 1 to vprofundo
             for j:=1 to vcolumna
             for h:=vfila to 1 step -1
                     aadd(timprimir,{vestanteria,vdetalle,j,h,p,"","",0,0})
                next h
             next j
        next p
        dbskip()
      enddo
          cdestant := OpenDbf(fdestant,1, , , , kdestant,"DBFCDX")
         (cdestant)->(DbSetOrder(1))
         (cdestant)->(Dbgotop())
          acdestan:=select()
          do while !eof()
             pos:= ascan(timprimir,{|aVal| aVal[1] = (cdestant)->estanteria .and. aVal[3] = (cdestant)->columna .and.;
                    (cdestant)->fila = aVal[4] .and. (cdestant)->profundo = aVal[5]})
             if pos > 0
                timprimir[pos,6] := (cdestant)->articulo
                timprimir[pos,7] := (cdestant)->detalle
                timprimir[pos,8] := timprimir[pos,8]+(cdestant)->cantidad
                timprimir[pos,9] := timprimir[pos,9]+(cdestant)->paquetes
             endif
             dbskip()
          enddo
          (cdestant)->(dbclosearea())
           select(acestanter)
           (cestanter)->(dbgotop())
      i:=1

if vlistado = 2 .and. vorden = 2
   timprimir:= ASORT(timprimir,,, { |x, y| x[6] < y[6] })
endif

      DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10

     REPORT oReport TITLE "Listado Desglasado de Estanterías";
            HEADER "TORRES ESPIC","Fecha: "+dtoc(date()),"Hora: "+substr(time(),1,5) RIGHT;
            FONT oFont1;
            FOOTER OemtoAnsi("Pagina: ")+str(oReport:nPage,3) CENTERED;
            PREVIEW
if vlistado =1
    GROUP ON (timprimir[i,1]);
           HEADER timprimir[i,1]+"-"+timprimir[i,2];
           FOOTER "Total Estanteria....." EJECT
     GROUP ON (timprimir[i,3]) FOOTER "Total Columna....."
     GROUP ON (timprimir[i,5]) FOOTER "Total Profundo....."



ELSEif vlistado = 2 .and. vorden = 1
    GROUP ON (timprimir[i,1]);
           HEADER timprimir[i,1]+"-"+timprimir[i,2] FOOTER "Total Estanteria....."
    GROUP ON (timprimir[i,3]) FOOTER "Total Columna....."
    GROUP ON (timprimir[i,5]) FOOTER "Total Profundo....."




elseif vlistado = 2 .and. vorden = 2
    GROUP ON (timprimir[i,6]);
          HEADER timprimir[i,6]+"-"+timprimir[i,7]

ENDIF


if vlistado = 1 .or. (vlistado = 2 .and. vorden = 1)
     COLUMN TITLE "Columna "  DATA timprimir[i,3]  center
     COLUMN TITLE "Fila"      DATA chr(timprimir[i,4]+64) center
     COLUMN TITLE "Profundo"  DATA timprimir[i,5] center

     COLUMN TITLE "Articulo"  DATA timprimir[i,6]
     COLUMN TITLE "Detalle "  DATA timprimir[i,7] size 50
     COLUMN TITLE "Cantidad "  DATA timprimir[i,8] PICTURE "99" RIGHT TOTAL
     COLUMN TITLE "Paquetes "  DATA timprimir[i,9] PICTURE "999" RIGHT TOTAL
elseif vlistado = 2 .and. vorden = 2
     COLUMN TITLE "Estanteria "  DATA timprimir[i,1]  center
     COLUMN TITLE "Detalle  "  DATA timprimir[i,2]  size 50
     COLUMN TITLE "Columna "  DATA timprimir[i,3]  center
     COLUMN TITLE "Fila"      DATA chr(timprimir[i,4]+64) center
     COLUMN TITLE "Profundo"  DATA timprimir[i,5] center
     COLUMN TITLE "Cantidad "  DATA timprimir[i,8] PICTURE "99" RIGHT TOTAL
     COLUMN TITLE "Paquetes "  DATA timprimir[i,9] PICTURE "999" RIGHT TOTAL

endif
     END REPORT

     oReport:bSkip := {|| i++}
if  vlistado = 1
     ACTIVATE REPORT oReport WHILE i+1 <=len(timprimir);
               ON STARTPAGE   oReport:SayBitmap(.2,.4, "TORRES.BMP",.5,.5)

elseif vlistado = 2
     ACTIVATE REPORT oReport WHILE i+1 <= len(timprimir);
              for timprimir[i,8]> 0;
              ON STARTPAGE   oReport:SayBitmap(.2,.4, "TORRES.BMP",.5,.5)

endif
 
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Totales de Report.

Postby Antonio Linares » Tue Jan 31, 2017 10:15 am

Has probado a cambiar el orden de estas dos líneas ?

GROUP ON (timprimir[i,3]) FOOTER "Total Columna....."
GROUP ON (timprimir[i,5]) FOOTER "Total Profundo....."
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Totales de Report.

Postby artu01 » Tue Jan 31, 2017 6:02 pm

Garbi:
yo no trabajo con arreglos en report, pero yo creo que bajarlo a un dbf temporal te puede servir para que lo indexes
por el campo cod_ columa+cod_profundidad asi:
Code: Select all  Expand view

index on cod_columna+cod_profundidad tag "1"
 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 397
Joined: Fri May 11, 2007 8:20 pm
Location: Lima


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 55 guests