Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2011
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Question Como particionar una banda en múltiples páginas ?

Hola a todos,

Me discilpan el título; pero fué la foma más aproximada que encontré para expresar la idea en pocas palabras. Explico ahora en detalle:

Tengo un sistema para el cual desarrollé múltiples informes en pantalla usando componentes TTreeView; con dibujo personalizado, que combina en cada línes del TTreeView texto con gráficas, usualmente de barras. Las gráficas superan con mucho el tamaño de la pantalla, así que lo que hacemos es fijar la parte de texto y usamos barras de desplazamiento para ver secciones de las gráficas. El sistema cuenta con diversas opciones para personalizar las gráficas y los textos; es decir, cada informe es muy complejo.

El problema es que nos han pedido imprimir esos informe, y la impresión debe ser horizontalmente continua; es decir, se debe imprimir la parte fija una sola vez y luego los gráficos en toda su extensión (o sea, no solo la parte visible en pantalla). Por simplicidad, imaginen que se trata de caracteres; que hay 400 líneas y 600 caracteres; pero, en cada hoja solo caben 50 líneas y 200 caracteres. Eso implica que la impresión tendría que ser así :

Página 1 : Líneas de la 1 a la 50, caracteres del 1 al 200
Página 2 : Líneas de la 1 a la 50, caracteres del 201 al 400
Página 3 : Líneas de la 1 a la 50, caracteres del 401 al 600
Página 4 : Líneas de la 51 a la 100, caracteres del 1 al 200
Página 5 : Líneas de la 51 a la 100, caracteres del 201 al 400
Página 6 : Líneas de la 51 a la 100, caracteres del 401 al 600
........
....
etcetera.

De esa forma, el usuario luego une las páginas de 3 en 3, con cinta pegante para que parezca como si cada bloque de 50 líneas se hubieran impreso en un papel extralargo. En otras palabras, lo mismo que hace Excel cuando debe imprimr demasiadas columnas para el ancho de la hoja de impresión.

Obviamente, una solución sería trabajar con TPrinter y repetir todo la lógica de programación ajustandose a la lona de TPrinter; pero, eso es inviable en términos de tiempo de desarrollo.

Lo que he pensado es desarrollar una rutina que genere una copia del Canvas de un TreeView; cambie las dimensiones de la copia para que simulen las dimensiones completas de cada franja de líneas, de forma que el dibujo sea continuo; aplicar a esta las rutinas del original; luego copiar secciones a un Bitmap e imprimir cada BitMap en una página.

En teoría debería funcionar; pero, hay varias cosas que me preocupan y es donde requiero la ayuda:

1. No estoy convencido de que sea el mejor método. Agradezco sugerencias.

2. Yo tengo Delphi 4. He leído informes de problemas copiando de Canvas a Canvas e imprimiendo bitmaps (por capacidades de impresoras y tipos de BitMaps). Alguién sabe de una documentación detallada al respecto ?

3. Tampoco tengo claros los detalles de la creación a tiempo de ejecución de la copia del TTreeView y el manejo de eventos de dibujo del mismo. Yo he creado a menudo controles a tiempo de ejecución y asignación dinámica de eventos; pero, no con dibujo personalizado. Aquí, a más de eso, hay que tener en cuenta que ese dibujo es por franjas y que hay que cambiar las dimensiones del mismo, a valores potencialmente muy altos. Alguién podría indicarme documentación al respecto ?

Agradezco cualquier ayuda, ya que la idea es empezar a programar esto la semana entrante.
Responder Con Cita
Respuesta



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
como generar ventas multiples (seleccionar multiples items) userdelphi Varios 4 30-12-2010 02:52:21
como hacer funcionar la banda title como banda detail en quickreport Rom@n Impresión 4 01-09-2010 21:35:46
Particionar el disco duro con un sistema operativo ya instalado Max_E. Windows 6 29-11-2008 16:03:19
Mantener la banda titulo en las demas paginas Coco_jac Impresión 2 25-04-2006 04:49:23
particionar BD Mysql con Delphi Delfino MySQL 0 23-12-2005 08:44:50


La franja horaria es GMT +2. Ahora son las 09:49:41.


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