Hola!!!
Estoy creando un reporte con Qreport 3 y delphi5, en el qreport creo 5 memos en tiempo de ejecucion.
Le añado lineas y lineas, pero llega un momento en que las lineas se pasan del margen vertical de la hoja (para esto utilizo un ciclo), primero recorro todos los memos y le agrego una linea a cada uno, pero cuando llega al final del margen de la hoja, al momento de que le añado una linea al primer memo y esta no cabe en la hoja, se añade otra hoja, pero toda la informacion del segundo memo, empieza en la hoja en donde se acaban las lineas del primer memo y asi consecutivamente.
Para el ciclo de añadir lineas utilizo un ciclo con una variable i(le pongo i, porque es para hacer pruebas), le pongo una condicion si el valor de i = 30; QRBand3.ForceNewPage := True, pero no pasa nada, agrego codigo
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
QuickRpt, ExtCtrls, Qrctrls;
type
TForm1 = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRBand2: TQRBand;
QRBand3: TQRBand;
procedure FormCreate(Sender: TObject);
procedure QuickRep1AfterPreview(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
public
end;
var
Form1: TForm1;
qrmemo : TQRMemo;
arrmemo: array of TQRMemo;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
i,cont : Integer;
begin
setlength(arrmemo,10);
left := 10;
for i :=0 to 4 do
Begin
arrmemo[i] := TQRmemo.Create(QRBand3);
arrmemo[i].AutoStretch := True;
arrmemo[i].Lines.Add('Memo '+inttostr(i+1));
arrmemo[i].Alignment := taRightJustify;
arrmemo[i].parent := QRBand3;
arrmemo[i].Lines.Add('');
arrmemo[i].Left := left;
arrmemo[i].Visible := True;
left := left + 100;
end;
for i :=0 to 4 do
Begin
for cont :=0 to 50 do
Begin
if i =15 then
QRBand3.ForceNewPage := True;
arrmemo[i].Lines.Count;
arrmemo[i].Lines.Add('linea '+inttostr(cont+1));
end;
end;
form1.Close;
form1.QuickRep1.Preview;
end;
procedure TForm1.QuickRep1AfterPreview(Sender: TObject);
begin
form1.Close;
end;
end.
alguien sabe porque, ya me le leído todos los hilos de este foro y he hecho pruebas, pero la verdad es que no me han funcionado, si alguien sabe como hacerle o tiene una idea, se los agradeceré mucho. Ya llevo algun tiempo con este problema y la verdad es que le sigo sin encontrar la solucion, me dijeron que podia probar tambien en que mandara directamente imprimir a la impresora o crear varios reportes con las lineas que le caben a uno, generar otro con las siguientes lineas y despues unirlo con el compositereport o algo asi se llama, pero la verdad es que tengo limitacion de computadora en cuanto a procesador y memoria
Gracias!!!
Cómo te siente hoy???