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 25-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Agregar hojas en qreport

Hola!!!

Alguien sabe como añadir nuevas hojas en qreport???

He escuchado algo de newpage o el needdata o algo por el estilo!!!!

Gracias.
Responder Con Cita
  #2  
Antiguo 25-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Con NewPage forzas que el siguiente detalle, si lo hay, se imprima en una nueva página. QReport imprime los pies de página correctamente al llamar al método (según recuerdo).

El OnNeedData es un evento que se utiliza cuando imprimis un reporte que no está conectado directamente a un DataSet. Valiendose de él, podrias imprimir, por ejemplo, el contenido de un string grid, o un archivo de texto.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 26-10-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Jackguate, me podrias indicar porfavor como podria imprimir un archivo de texto con el OnNeedData del qreport

Gracias por adelantado
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 26-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por Caro
Hola Jackguate
Hola Caro, supongo que me hablas a mi: jachguate, ¿cierto?

Añadí una banda de detalle al reporte, con un TQRLabel, que se llamará qrlLinea; y se implementará los métodos BeforePrint, para abrir el archivo, OnNeedData para imprimir cada línea y AfterPrint para cerrar el archivo. También añadiremos un miembro en la parte privada de la clase, de nombre FTexto y tipo TextFile

El código quedará algo asi:

Código Delphi [-]
procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  AssignFile(FTexto, 'c:\datos.txt');
  ReSet(FTexto);
end;

procedure TQuickReport2.QuickRepNeedData(Sender: TObject;
  var MoreData: Boolean);
var
  linea : string;
begin
  MoreData := not eof(FTexto);
  if MoreData then
  begin
    ReadLn(FTexto, Linea);
    qrlLinea.caption := Linea;
  end;
end;

procedure TQuickReport2.QuickRepAfterPrint(Sender: TObject);
begin
  CloseFile(FTexto);
end;

No he comprobado nada, así que el código podria contener errores de sintaxis, y hasta lógicos, pero la idea es esa. Con el tema comprendido, podras corregirlos (si los hay) por tus propios medios.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 26-10-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Muchisimas Gracias amigo jachguate
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 27-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!!

aqui de nuevo, he estado un poco atareado con esto de los reportes, y no habia tenido tiempo de revisar esta pagina(un poco ironico, la verdad es que me urge y no me ha dado tiempo de checar) =) verdad??

Consegui lo siguiente:

encontre buscando por mucho tiempo en internet como hacerle para añadir una pagina nueva

se añade lo siguiente:
QRBand.ForceNewPage := True;

se supone que con esa linea te añade una pagina nueva, si me la añade, pero no puedo crear las labels(en tiempo de ejecucion) en esa pagina, ademas la pagina me la añade en la primera parte (la pagina que añadi, pasa a ser la primera) y en donde tenia mis datos pasa a ser la segunda.

Alguien sabe como hacere para crear las labels en la pagina nueva???

La verdad es que estoy hecho un lio con esto de qreport, pero bueno, al cliente lo que pida. jejeje
Gracias.
Cómo te sientes hoy??
Responder Con Cita
  #7  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por david duarte
La verdad es que estoy hecho un lio con esto de qreport, pero bueno, al cliente lo que pida. jejeje
Gracias.
Cómo te sientes hoy??
Creo que el problema va por alli... quizas no necesitas una página nueva. Por que no mejor contas que es lo que te está pidiendo tu cliente y seguro alguien te echa un cable por aqui.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 27-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Mira, lo que pasa es que tengo una base de datos(de el cliente) que es una empresa que hace analisis de polimero, telas, hilo.

entonces lo que quieren es que se haga un reporte con todos los analisis de las muestras.

esto es, cada muestra puede tener n analisis y a esas muestras les pueden hacer n pruebas a cada analisis, ej.

por ej, en este, son 1 muestras y se le realizaron 3 analisis y a cada analisis se le realizaron 5 pruebas
Código:
Folio   Posicion Numero analisis1  analisis2 analisis 3
  1	    3a		 01	   2.25	  6.25	   8.45
  1	    2a		 02	  48.25	  ---	  98.35
   1	    5a		 03	  58.55	  6.66	  ---
   1	    6a'	    04		 6.45	6.56	   6.94
   1	    4a		 05	   4.25	  1.25	   6.25
 ......
 ......
 .....
pero las pruebas pueden ser desde 1 hasta n (maximo aprox 70).

Lo que hago en el qreport es crear los labels de los resultados en tiempo de ejecucion, pero si son 50 pruebas, las labels se pasan del alto de la banda de detalle....

cuando pase es ,lo que quiero es crear una nueva pagina y continuar creando los labels en esa pagina.

Espero que me haya ententido.

Gracias.

Cómo te sientes hoy??

Última edición por david duarte fecha: 27-10-2005 a las 17:57:24. Razón: complementar
Responder Con Cita
  #9  
Antiguo 27-10-2005
mamp67 mamp67 is offline
Miembro
 
Registrado: jul 2005
Posts: 11
Poder: 0
mamp67 Va por buen camino
hola

crea una banda de titulo y le cambias la propiedad en bandatype a rbcolumheader

estoy aprendiendo a programar espero eso sea lo que necesitas y disculpa por ser muy poco explicito ya me regañaron en el foro por eso soy mamp67 si me pueden ayudar con mi reporte se los agradecere
Responder Con Cita
  #10  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Realmente no me he topado con esta necesidad antes. Creo que en casos como este, quizas valdria mas crear "n" reportes, uno con las primeras columnas, otros con las columnas restantes, y luego unirlos via qrCompositeReport.

Otra opción es no usar qReports y enviar directamente a la impresora.

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 27-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Muchas Gracias. Lo probare a ver que sucede.
por lo que he leido, si se puede, pero en todos los foros que he visto y paginas que he leido, ninguno dice como se puede hacer, solamente dice como hacerle para agregar una nueva hoja y ya. Las demas personas que estan en los foros, tambien dicen lo mismo, que si se les agregan las hojas, pero que los resultados no se los muestra en la nueva hoja. Seguire intentando y voy a probar con reportes por separado y luego unirlos.

Gracias.

Cómo te sientes hoy
Responder Con Cita
  #12  
Antiguo 27-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
que quieres hacer en tu reporte mamp67, disculpa, estoy un poco atareado con este proyecto, si nos comentas mas, probablemente te podemos ayudar.

Cómo te sientes hoy??
Responder Con Cita
  #13  
Antiguo 31-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Oigan!!!

Bueno, la primera cosa

Como le hago para mandar imprimir directamente a la impresora, mencionaron que si usaba el OnNeedData, podria imprimir directamente desde un grid si necesidad de tener un datasource, como le haria para que se impriman como aparecen en el grid???

Y en el caso contrario no el encuentro como crear un nuevo reporte y despues unirlos, tienen algun ejemplo, estuve viendo, pero no entiendo nada

Gracias
Cómo te sientes hoy??
Responder Con Cita
  #14  
Antiguo 01-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por david duarte
como crear un nuevo reporte y despues unirlos, tienen algun ejemplo, estuve viendo, pero no entiendo nada
Pues ejemplo no, pero si buscas por TQRCompositeReport, podes hallar algunos. Si no recuerdo mal, el método para agregar reportes es AddReport.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 03-11-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Oigan, ya encontre una solucion, hice unas pruebas añadiendo un qrmemo en la banda de detalle, y si son 100 le añado 100 lineas y se imprime automaticamente en la otra hoja.

Ahora lo que pasa es que cuando creo los tqrmemo en tiempo de ejecucion, si me los crea, pero no los muestra al momento de hacer el preview.

Anexo el codigo para que me ayuden a revisar mi codigo, se me hace extraño que no me las visualize, porque he creado las Labels y esas si me las muestra.

Gracias.
Cómo te sientes hoy??

complemento:

Les agrego el codigo, la verdad no entiendo porque no me los muestra
Código Delphi [-]
 unit memos;
 interface
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, qrctrls,
   QuickRpt, ExtCtrls;
 type
   TForm1 = class(TForm)
     QuickRep1: TQuickRep;
     QRBand1: TQRBand;
     QRBand2: TQRBand;
     QRBand3: TQRBand;
     procedure FormCreate(Sender: TObject);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
     procedure FormShow(Sender: TObject);
     procedure QuickRep1AfterPreview(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 var
   Form1: TForm1;
   mem: array of TQRMemo;
 implementation
 {$R *.DFM}
 procedure TForm1.FormCreate(Sender: TObject);
 var
   i, izq: Integer;
 begin
  setlength(mem,5); //asignamos el tamaño a el arreglo
    izq :=0;
    for i:=0 to 4 do
  Begin
    mem[i] := TQRMemo.Create(QRBand3);
    with mem[i] do
    Begin
      left := izq; 
      autostretch := True;
      color := clBlack;
            izq := izq+ 40;
            parent := QRBand3;
           enabled := True;
      visible := True;
    end; // with
    end; //for
end;//Begin
 
 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
 begin
  Action := CaFree;
 end;
 
 procedure TForm1.FormShow(Sender: TObject);
 begin
  quickrep1.Preview;
 end;
 
 procedure TForm1.QuickRep1AfterPreview(Sender: TObject);
 var
  i,contmem : Integer;
 begin
  i :=0;
    for i := sizeof(mem) downto 0 do
    showmessage(inttostr(i)+' memos');
   end;
 end.


Nueva parte

Gracias a todos lo que me ayudaron en este problemilla, Se los agradezco

ya encontre la solucion, solamente faltaba ponerle el memo[i] en el parent, ya que como nada mas tenia el parent solo, por lo que supongo es que no creo el qrmemo en donde le dije, quien sabe en donde lo habrá creado.

Simplmente le pusse
memo[i].Parent := QRBand3

y ya.

Gracias

Cómo te sientes hoy
Archivos Adjuntos
Tipo de Archivo: zip frm_memos.zip (3,2 KB, 44 visitas)

Última edición por david duarte fecha: 14-11-2005 a las 22:21:03. Razón: codigo
Responder Con Cita
  #16  
Antiguo 22-11-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!!

he seguido haciendo pruebas y pruebas, pero no me funciona eso de agregar paginas!!!!

Ya no se ni que hacer!!!

he checado y probablemente tenga que ver con el tamaño de la banda..

Tambien estuve leyendo y cada vez que creas un TQRDBText, se agrega una banda de detalle, y la no me sirve de nada!!! me urge!! alguien sabe porque hace esto???

o en caso de que pueda mandarlo directamente la impresora(puedo usar el NeedData)?? o cual??

Gracias
Cómo te sientes hoy??
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


La franja horaria es GMT +2. Ahora son las 02:11:56.


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