Contar nº de grupos en informe interno


([N4] victorgt) #1

Hola.

Hoy me ha sucedido algo nuevo… Necesito contar el nº de subgrupos que hay en un grupo…

Algo asi como contar el nº de facturas en un informe hecho a base de lineas, donde cada factura es un agrupamiento de lineas…

Le he dedicado 1/2 hora y ni idea como hacerlo…

¿Alguna sugerencia de por donde atacarlo?

Gracias.


([N4] Infortic) #2

No lo he probado, pero yo intentaría crear un manejador de evento que calcule por código usando multipartir lista, puedes crearte un array con la cantidad que tiene cada grupo por ejemplo.


([N4] antonioosorio) #3

Hola.

Crea una actualización, en la que se acumule un 1 en cada grupo de cada subgrupo.

Un saludo.


([N4] victorgt) #4

@info
Si, algo asi quiza funcionaria, pero es un poco lio… Además, si cargo los contadores en un array, no sabria como referenciar la posicion en el array desde el pie de grupo…

@antonioosorio
¿Actualizaciones? No se ocurre como… El informe es entre fechas, no puedo tener el dato precalculado…

Gracias a ambos. Me temo que esto va para soporte (y que en soporte me diran que use vReport ;-).

Saludos.


([N1] wikan) #5

Buenas Victor,

si es un cálculo para un informe, ¿por qué no lo haces directamente en el informe?, de alguna manera podrás controlar los agrupamientas y calcular en una variable lo que necesitas.


([N4] Infortic) #6

Hacen falta unos eventos de pre-print-section y post-print-section para ejecutar manejadores, darían muuuuuucho juego…


([N4] victorgt) #7

@info
Has dado en el clavo… En mis (pocas) pruebas el unico evento disponible es “Al disparar” el informe (supongo que el de cerrar el informe tambien funcione). Pero los realmente utilies son los que tu citas… Y esos no existen…

@manuel
Siguiendo la analogia de facturas/lineas, intenté lo siguiente: tengo dos contadores: CONT_LIN y CONT_FACT. De mano el unico que funciona bien es CONT_LIN. Bueno, pues he intentado condicionar CONT_FACT a que se incremente (en 1) SOLO cuando CONT_LIN sea 1 (por ejemplo, tambien probe con cero). Nada de nada (en unos pocos grupos parecia funcionar, y en otros ponia cero), y no se si estoy haciendo algo mal o es que este camino es esteril.

Saludos.


([N1] wikan) #8

@victorgt si estás agrupando líneas por factura.
Pon un cálculo que se reinicie en ese agrupamiento y su fórmula 1.
Hace tiempo que no trabajo con los informes nativos, pero entiendo que estaríamos acumulando 1 por cada agrupamiento(factura)

Otra forma que se me ocurre, depende como lances el informe.
Si creas un manejador de objeto con el informe, podrías añadir lista al objeto(las líneas) pero también mediante el manejador asignar el valor a una variable que contabilice el número de facturas que estás imprimiendo.


([N4] victorgt) #9

El problema es que hay mas agrupamientos…

El caso real es sesiones de trabajo, agrupadas por Averia, agrupadas por centro de trabajo y agrupadas por Empresa. Ademas el informe es entre fechas…

Pues me gustaria poner en el pie de Empresa (o de Centro, pal caso patatas) un contador de Averias…

Me falta ese dato para dejar “redondo” el informe…

Saludos.


([N1] wikan) #10

A ver si te entendi, son líneas de facturas pero realmente no están agrupadas por cabecera, si no por todo lo que indicas arriba??

Entonces solo te veo la segunda opción, antes de pasar las líneas al informe, cargar los maestros y pasar el números de registros a variables del informe.


([N4] victorgt) #11

Si, en realidad tengo tres agrupamientos: detalle con sesiones de trabajo, agrupadas por averia, centro y empresa (en ese orden), pero el problema es generico: como contar, en un agrupamiento de nivel superior, los elementos de un agrupamiento de nivel inferior.

Por ejemplo (mi caso) contar el nº de Averias por Centro o empresa…

Si tuviesemos los eventos que citaba info esto seria facil de programar…

Saludos.