Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   forcenewpage y forcenewcolumn, qreport ... (https://www.clubdelphi.com/foros/showthread.php?t=39748)

mierda 29-01-2007 13:00:41

forcenewpage y forcenewcolumn, qreport ...
 
Hola que tal ... trabajo con delphi 5 y s.o. win2000, contra una bbdd sqlserver 2000, tengo una tabla con estos datos:

Código Delphi [-]
codigo
123456789012
 777777777777
 123456789014
 123456789015
 123456789016
 777777777777
 123456789016
 123456789016
 123456789016
 123456789016
 777777777777
 123456789016
 123456789016
 123456789016
 123456789016
 777777777777
 123456789016
 777777777777
 123456789016

y tengo un report, en el cual saco el codigo.

en el onprint de este codigo hago esto:

Código Delphi [-]
 
procedure TForm1.QRDBText1Print(sender: TObject; var Value: String);
begin
if copy(ADOTable1.fieldbyname('codigo').AsString,0,12) = '777777777777' then
  begin
    QRBand1.ForceNewPage := true;
  end
else
  begin
    QRBand1.ForceNewpage := false;
   end;
end;

Pues con el forcenewpage funciona perfectamente, pero si le hago un forcenewcolumn no va la primera vez que tiene que saltar de columna, despues si.

Es un bug?? tengo que hacer algo antes!!?

pd: ya que estamos ... como podria hacer que si el codigo es 7777777777 no se muestre el qrband?!?!!?

Un saludo y gracias!!

marcoszorrilla 29-01-2007 15:50:46

Intuyo que el problema puede venir porque el informe solamente tiene una columna. En este caso quizás haya que engañarle y la primera vez mandarle 2 veces la instrucción, una para que cree la columna y otra para se ubique en ella.

Un Saludo.

mierda 29-01-2007 17:20:15

Hola .... creo que no
 
Hola ... creo que no viene por ahi el error, ya que al principio leo de un xml las columnas que tiene ... y le pongo 4 columnas .....

he continuado haciendo pruebas y haciendo unas cuantas chapuzas ... he conseguido que funcione correctamente, pero claro son chapus ...ahi va:

1.- crear una QRBand2 y ponerla como columnheader ... ponerle el alto a 0

2.- en el report en el beforeprint le hago un
Código Delphi [-]
 
QRBand1.ForceNewColumn := true;

(luego ya veremos si es forcenewcolumn true o false)

PD: esto mas o menos esta ya .... pero como hago para que el registro que tiene que saltar de columna no se muestre? o sea que el que sea el codigo 777777777 no se muestre y luego salte de columna

PD2: muchas gracias por contestar

Edito: Ya he conseguido que no salga la banda que es 7777777777 y que ademas salte de columna.La solucion por si a alguien le interesa algun dia:

1.- Hacer todo lo anterior.

2.- En el beforeprint

Código Delphi [-]
procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
if copy(ADOTable1.fieldbyname('codigo').AsString,0,12) = '777777777777' then
  begin
      QRBand1.Visible := false;
      printband := false;
  end
else
  begin
      QRBand1.Visible := true;
      PrintBand := true;
  end;

3.- En el afterprint:
Código Delphi [-]
procedure TForm1.QRBand1AfterPrint(Sender: TQRCustomBand;
  BandPrinted: Boolean);
begin
BandPrinted := true;
if copy(ADOTable1.fieldbyname('codigo').AsString,0,12) = '777777777777' then
  begin
      QRBand1.ForceNewColumn := true;
  end
else
  begin
      QRBand1.ForceNewColumn := false;
  end;
end;


La franja horaria es GMT +2. Ahora son las 01:25:03.

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