Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como incremento un numero en la impresion? (https://www.clubdelphi.com/foros/showthread.php?t=23090)

danytorres 06-07-2005 15:55:31

Como incremento un numero en la impresion?
 
Buenos dias amigos, tengo un pequeño problema estoy trabajando con delphi 7 y Rave, estoy imprimiendo unos boletos que son iguales, yo le paso los string a traves de parametros en rave, lo unico que cambia es un correlativo en cada boleto al pasarle los string le indico la cantidad de copias y e imprime, el problema esta como como incremento el correlativo para cada boleto cuando este imprimiendo???

BlueSteel 06-07-2005 16:02:10

Hola...

Yo tenia un problema similar, pero en QReport... y lo que hice fue en el evento AfterPrint...(del detail) sumarle 1 en forma manual al contador...

No se si en Rave se pueda hacer, tampoco se si se puede usar la expresión COUNT... que trae QReport

espero que te sirva...

danytorres 06-07-2005 16:05:02

gracias por responder en Qrepot con la exprecion count, pero no encuetro la forma de hacerlo en Rave.

BlueSteel 06-07-2005 16:11:55

la función COUNT.. automáticamente te suma 1... pero yo no use eso...

lo que puse fue una componente de tipo TQRLabel... y antes de hacer Informe.Preview o Informe.Print.... le asignaba el valor de inicio....

Ej. Informe.TQRLabel.Caption := '34'; (Ojo.. esto lo hago del formulario de llamada)

y dentro del inform en el Evento (puedo ser AfterPrint) le sumaba 1 de esta forma

TQRLabel.Caption := IntToStr(StrToInt(TQRLabel.Caption)+1);

Ahora tambien puedes hacerlo con variables.... y despues simplemente lo traspasas...

Por que te digo en el evento AfterPrint...por que se supone que es una banda detail,.. que se va a repetir en forma continua... por lo tanto, imprime e incrementa la variable... :o

Loviedo 06-07-2005 17:37:44

De esta forma he conseguido cambiar la fuente, supongo que cambiar el texto del Datatext será similar.
Espero te ayude. Saludos.

Código Delphi [-]
{ Event for DataBand1.OnBeforePrint }function DataBand1_OnBeforePrint(Self: TRaveDataBand);begin if dataview1haber.asfloat < 0 then   datatext5.color := clred; else   datatext5.color := clblack; end if; if dataview1debe.asfloat < 0 then   datatext4.color := clred; else   datatext4.color := clblack; end if;end OnBeforePrint;

Loviedo 06-07-2005 17:41:56

Código Delphi [-]
{ Event for DataBand1.OnBeforePrint }
function DataBand1_OnBeforePrint(Self: TRaveDataBand);
begin
 if dataview1haber.asfloat < 0 then
   datatext5.color := clred;
 else
   datatext5.color := clblack;
 end if;
 if dataview1debe.asfloat < 0 then
   datatext4.color := clred;
 else
   datatext4.color := clblack;
 end if;
end OnBeforePrint;

Loviedo 06-07-2005 23:42:56

Si lo que haces es repetir el procedimiento de impresión tantas veces como impresos necesarios, entonces puedes utilizar esto para reemplazar un text en Rave:
Código Delphi [-]
var
  Pagina: integer = 0;
 
implementation
 
uses RVClass, RVProj, RVCsStd;
 
{$R *.dfm}
 
procedure TFDM.Imprimedocumento1;
var
  MyPage: TRavePage;
  MyText1: TRaveText;
  NDRStream:  TMemoryStream;
begin
  inc(Pagina);
  NDRStream := TMemoryStream.Create;
  try
    RvProject1.Engine := RvRenderWriter1;
    RvProject1.open;
    With RvProject1.ProjMan do
      begin
        MyPage := FindRaveComponent('Ficha1.Page1',nil) as TRavePage;
        MyText1 := FindRaveComponent('Text1',MyPage) as TRaveText;
        MyText1.Text := 'Página '+inttostr(Pagina);
      end;
    RvProject1.SelectReport('Ficha1',true);
    RvProject1.SaveToStream(NDRStream);
    RvRenderWriter1.Stream:=NDRStream;
    RvProject1.Execute;
    RvRenderPrinter1.Render(NDRStream);
    RvProject1.close;
  finally
    NDRStream.Free;
  end;
end;


La franja horaria es GMT +2. Ahora son las 03:38: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