Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2017
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Reporte con un nº máximo de filas.

Buenos días,

Verán, tengo que generar unas impresiones con un numero de filas indeterminado, indeterminado por que unas veces pueden ser a 10 lineas otras a 16 y otras a 40.
Desde un clientdataset me traigo los datos que, pueden tener mas de 1000 registros. Mi problema es que necesito encontrar la manera de que cuando me lleguen por ejemplo 500 registros estos se impriman 10 o 15 o 40 por hoja según se requiera.

Pongo un ejemplo:
El clientdataset me retorna 30 registros.
Se requiere que por hoja solo se impriman 10 filas, por lo que deberían de salir 3 hojas.
El nº de hojas me da lo mismo la condición es que por hoja se impriman las X filas (10, 15, 40).

Pueden arrojarme algo de luz.

Desde ya, muchas gracias.
Responder Con Cita
  #2  
Antiguo 24-05-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por barakuda Ver Mensaje
Buenos días,

Verán, tengo que generar unas impresiones con un numero de filas indeterminado, indeterminado por que unas veces pueden ser a 10 lineas otras a 16 y otras a 40.
Desde un clientdataset me traigo los datos que, pueden tener mas de 1000 registros. Mi problema es que necesito encontrar la manera de que cuando me lleguen por ejemplo 500 registros estos se impriman 10 o 15 o 40 por hoja según se requiera.

Pongo un ejemplo:
El clientdataset me retorna 30 registros.
Se requiere que por hoja solo se impriman 10 filas, por lo que deberían de salir 3 hojas.
El nº de hojas me da lo mismo la condición es que por hoja se impriman las X filas (10, 15, 40).

Pueden arrojarme algo de luz.

Desde ya, muchas gracias.
Hola.

No dices qué reporteador estás usando para los informes pero imagino que las filas por página dependerán de la configuración del informe que uses sea el que sea.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 24-05-2017
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Vaya tienes toda la razón, utilizo rave report.
El tema es que desconozco si es posible pasar como parámetro el nº de filas max por hoja que debe meter
Responder Con Cita
  #4  
Antiguo 24-05-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.460
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por barakuda Ver Mensaje
Vaya tienes toda la razón, utilizo rave report.
El tema es que desconozco si es posible pasar como parámetro el nº de filas max por hoja que debe meter
Pues la verdad es que no sé porque no conozco rave report pero como mal menor puedes tener distintos informes configurados con distintas lineas por página y emitir uno u otro según te interese.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 24-05-2017
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Si, en esa solución ya pensé pero la idea es minimizar todo y que un solo tipo de report valga para todos los datos.
Lo que de momento tengo echo, digamos lo a si, es una especie de contador for i:=0 to X esto me va llenando un clinetdataset con un max de X registros, a continuación mando a llamar al report este lee del clientdataset y me imprime las X lineas antes cargadas, cuando acaba vació el clientdtaset para volver a hacer el paso anterior, asta el final del clientdataset que contiene los datos del query.

Esto me funciona y pero me da la sensación que estoy dando excesivas vueltas.
Responder Con Cita
  #6  
Antiguo 24-05-2017
rafacarpi rafacarpi is offline
Miembro
 
Registrado: feb 2017
Ubicación: Sevilla - España
Posts: 17
Poder: 0
rafacarpi Va por buen camino
Hace mucho que no toco Rave y actualmente no tengo ni los componentes instalados. Te comento esto por si te puede servir de algo, actualmente uso QuickReport y en el existe un evento OnNeedData y en ese evento puedes jugar con el Recno del ClientDataSet y saltar las páginas.
Responder Con Cita
  #7  
Antiguo 24-05-2017
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 18
identsoft Va por buen camino
¿De que depende que el impreso tenga 10,15 o 40 lineas?
Se me ocurre calcular el tamaño de la banda de detalle a cada caso, pasar un parámetro a Rave (p.e. 1 para 10 lineas, 2 para 15 lineas y 3 para 40 lineas) y antes de imprimir la banda, en el editor de eventos, ajustar el tamaño de la banda al nº de lineas a imprimir. No lo he probado pero creo que si se podrá.
Responder Con Cita
  #8  
Antiguo 24-05-2017
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 18
identsoft Va por buen camino
Tienes una propiedad en la banda de detalle que es MaxRows que dice el máximo nº de registros que puedes imprimir en dicha banda.
Pasando un parámetro, puedes ajustar el maxrows al nº de lineas a imprimir.
Responder Con Cita
  #9  
Antiguo 24-05-2017
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
El MaxRows nos imprimirá el nº de lineas que le pasemos pero el resto de registros no lo hace, si por ejemp el client le pasa 100 registros al hacer el MaxRows de 10 solo sacara una hoja con 10 registros los otros 90 los desecha.
Desde hace un tiempo estoy pensando en utilizar otro reporteador como el quickreport o el fastreport el por que no lo hice es porque tengo varios programas que de tanto en tanto hay que modificar y en ellos utilice rave report, pero creo que eso deberá de cambiar.
Responder Con Cita
  #10  
Antiguo 24-05-2017
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 18
identsoft Va por buen camino
La otra solución es la que comenté al principio. La banda tiene la propiedad Height. Define el tamaño en función del número de lineas a imprimir. En el editor de eventos, le asignas el valor en función de las lineas (p.e. 10 lineas, Height = 0,500, 15 lineas, Height = 0,400,
40 lineas Height = 0,100)
(Los valores me los he inventado. Hay que probar.)
En cuanto a lo del cambio de reporteador, eso es decision tuya. Si ves que no te sirve o se queda corto, pues es el momento de cambiar. A mí, de momento, me sirve.
Responder Con Cita
  #11  
Antiguo 24-05-2017
JJAlf JJAlf is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
JJAlf Va por buen camino
No conozco el Rave así que no sé que opciones tiene, pero así en global, se me ocurren 2 opciones:
- Forzar el salto de página, por código, si existe la opción.
- Supongo que existirán los grupos (agrupación de datos) y que éstos permitirán un salto de página al cambiar, si el sistema permite que el elemento de agrupación sea una variable, sólo tienes que controlar esa variable para que valga num_registro_real div num_lineas_por_pagina.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda sobre reporte en QReport agrupando filas DSK25 Impresión 0 11-09-2012 03:31:01
Máximo de un array Livey Varios 1 05-06-2012 22:40:37
Nº maximo caracteres franfl Firebird e Interbase 3 30-04-2008 19:10:04
Máximo Usuarios jsanchez Firebird e Interbase 2 10-11-2004 12:47:23
Escoger el máximo de toda la BDA nesetru Conexión con bases de datos 4 12-02-2004 14:24:53


La franja horaria es GMT +2. Ahora son las 07:32:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi