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 04-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Problema con QRRichText

Hola amigos tengo un problema al imprimir el contenido de varios QRRichText

La verdad el problema surgio cuando queria imprimir el contenido de un StringGrid de 5 columnas y 19 filas (una fila para los titulos)y no sabia como, entoces descubri que se pòdia con QuickReport pero no sabia usar QR, pero se me ocurrio una idea.Crie un form para el StringGrid donde el usuario encribe los datos y tengo un menu de opciones(imprimir, guardar,nuevo,previsualizar,etc.).Tambien dos edit para el total de la suma de las dos ultimas columnas del stringGrid que estan ubicados abajito de ellas pues el usuario quiere esta suma;osea la la penultima y la ultima culumna del stringGrid son datos numericos;

Aparte de eso tengo otros componentes que no interesan al caso.

Crie otro form llamado "Report" para el QuickReport(QR) donde puse 5 QRRichText dentro del QR teniendo en cuenta que cada QRRichText representa una columna del stringGrid ,es decir los QRRichText estan juntitos como como 5 columnas,Ademas 2 QRLabel para el total (osea que tambien estan abajito del penultimo QRRichText y el ultimo).Cuando el usuario le clickea la opcion previsualizar o imprimir, lo que hago internamente es copiar toda la columna i del StringGrid al QRRichText(i)correspondiente y asi sucesivamente y luego lo previsualizo o lo imprimo de acuerdo a la opcion clickeada, aqui tienen el metodo que lo he llamado CopiarTodo;

Código Delphi [-]
procedure TPrincipal.copiarTodo;
VAR i:byte;
begin
i:=1;
//c1,c2,c3,c4,c5 son los nombres de los 5 QRRichText que utilizo
//en la unidad llamada Report
   while (tabla.Cells[3,i]<>'') and (ido
    begin
       Report.Form1.c1.Lines.Add(tabla.Cells[0,i]);
       Report.Form1.c2.Lines.Add(tabla.Cells[1,i]);
       Report.Form1.c3.Lines.Add(tabla.Cells[2,i]);
       Report.Form1.c4.Lines.Add(tabla.Cells[3,i]);
       Report.Form1.c5.Lines.Add(tabla.Cells[4,i]);
       i:=i+1;
       if((tabla.Cells[3,i]<>'') and (ithen
        begin
       //adiciono un un "enter" por conveniencia de impresion a cada 
      //QRRichText para que aya un espacio entre lineas
//esto no se ejecuta si es la ultima fila al copiar 
       Report.Form1.c1.Lines.Add(#13);       
       Report.Form1.c2.Lines.Add(#13);
       Report.Form1.c3.Lines.Add(#13);
       Report.Form1.c4.Lines.Add(#13);
       Report.Form1.c5.Lines.Add(#13);
       end;

    end;
//Esztos son los QRLabel los para el total de la suma
// Edit3,Edit4 son los edit que tienen la suma
       Report.Form1.QRLabel2.Caption:=Edit3.Text;
       Report.Form1.QRLabel3.Caption:=Edit4.Text;
end;

OK el problema es que cuando lo previsualizo esta todo en orden ,pero cuando lo imprimo los datos de la suma que tienen los QRLabel2,QRLabel3, me aparecen mas abajo de lo que se previsualiza, pareciera que los QRRichText tubieran al final un "enter" demas.

Lo que pasa es estoy imprimiendo en un formulario que ya esta diseñado y solamente yo lo que hago es rellenar dicho formulario ,asi que por eso quiero que se imprima en el lugar exacto.
No se si pudieran Ayudarme o darme otra opcion pero mejor si me ayudan para no estar haciendo todo de nuevo.Solamente es este pequeño error.

Última edición por rgstuamigo fecha: 04-08-2008 a las 17:25:52. Razón: error en una linea
Responder Con Cita
  #2  
Antiguo 05-08-2008
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, si quieres imprimir el contenido de un StringGrid, puedes utilizar el evento OnNeedData del QuickReport, un ejemplo.

Código Delphi [-]
procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
 MoreData := Indice <= StringGrid1.RowCount;
 if MoreData then
  begin
   qrLabelCol1.Caption := StringGrid1.Cells[0, Indice];
   qrLabelCol2.Caption := StringGrid1.Cells[1, Indice];
   qrLabelCol3.Caption := StringGrid1.Cells[2, Indice];
  end;
 Inc(Indice);
end;
 
//Inicializamos indice
procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin 
 Indice := 0;
end;

colocas Qrlabels en una banda Detail, que sera cada columna de tu StringGrid.

Sobre el QrRichText, la verdad nose porque pasa lo que dices.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 02-12-2009 a las 13:17:40.
Responder Con Cita
  #3  
Antiguo 05-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Hola Caro muchas gracias por responder, la verdad me has dado una nueva opcion, pero quisiera preguntarte Que pasa si quiero que las lineas sean mas pegadas o haya un espacio mas ancho entre cada fila de la impresion. Con respecto al ejemplo que me diste ,la variable Indice ¿es una variable global?
(Comentarte que estoy utilizando Delphi 7)
Espero tu respueta.
Responder Con Cita
  #4  
Antiguo 05-08-2008
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 de nuevo rgstuamigo, la variable Indice si es una variable global, sobre el espacio entre las líneas es depende del alto que le des a tu banda Detail, cuanto mas alto la separación entre las líneas sera mayor, si quieres bien pegadas, disminuye el alto de la banda.

Saluditos
__________________
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
  #5  
Antiguo 05-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Muchas gracias Caro Excelente Respuesta
Saludos..
Hasta una proxima oportunidad.
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
Atributos del QRRichText rafita Impresión 4 13-04-2009 19:37:11
error con qreport y qrrichtext aladelta Impresión 2 18-01-2008 10:02:52
Ayuda QRRichtext drykea Impresión 2 05-06-2007 12:32:47
escribier en un qrrichtext gustavo2 Varios 2 03-02-2004 00:23:42
Modificar qrRichText aig Impresión 4 19-06-2003 10:55:39


La franja horaria es GMT +2. Ahora son las 09:18:30.


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