Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Rave Report - Diálogos en español (https://www.clubdelphi.com/foros/showthread.php?t=30246)

German 13-02-2006 09:13:26

Rave Report - Diálogos en español
 
Debido a que la versión de Rave Reports para Delphi no incluye los fuentes, la única manera de tener los diálogos en español es crear uno mismo los forms, y utilizar los eventos OverridePreview, OverrideSetup y OverrideStatus del control RvSystem para sustituir los diálogos estándar.

He traducido unos diálogos iguales a los originales (faltaría mejorarlos, por que la verdad es que los diálogos estandar dan algo de pena :cool:) y los he comprimido en este ARCHIVO ZIP. Simplemente hay que añadirlos al proyecto, y añadirlo al USES del form que contenga el control RvSystem.

Hay que recordar que se debe traducir algunas propiedades del control RvSystem para que todo quede completamente en español:

RvSystem.SystemFiler.StatusFormat cambiar a "Generando página %p"
RvSystem.SystemPrinter.StatusFormat cambiar a "Imprimiendo página %p"
RvSystem.SystemPrinter.Title cambiar a "Informe" (Título del informe)
RvSystem.TitlePreview cambiar a "Vista previa de informe"
RvSystem.TitleSetup cambiar a "Configuración de informe"
RvSystem.TitleStatus cambiar a "Estado del informe"

Y por último, los eventos (Probados en BDS 2006):

Código Delphi [-]
procedure TForm1.RvSystem1OverridePreview(ReportSystem: TRvSystem;
OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
  case OverrideMode of
    omCreate: begin
                OverrideForm := TFormRavePreview.Create(self);
                OverrideForm.Caption := ReportSystem.TitlePreview;
                OverrideForm.Width := ReportSystem.SystemPreview.FormWidth;
                OverrideForm.Height := ReportSystem.SystemPreview.FormHeight;
                OverrideForm.WindowState := ReportSystem.SystemPreview.FormState;
               (OverrideForm as TFormRavePreview).ReportSystem := ReportSystem;
              end;
    omShow: begin
              ReportSystem.SystemPreview.InitPreview((OverrideForm as TFormRavePreview).RvRenderPreview);
              if Assigned(ReportSystem.OnPreviewSetup) then
              ReportSystem.OnPreviewSetup((OverrideForm as TFormRavePreview).RvRenderPreview);
              (OverrideForm as TFormRavePreview).InputFileName := ReportSystem.SystemFiler.Filename;
              (OverrideForm as TFormRavePreview).InputStream := ReportSystem.SystemFiler.Stream;
              (OverrideForm as TFormRavePreview).InitFromRPSystem;

              if soPreviewModal In ReportSystem.SystemOptions then OverrideForm.ShowModal
              else OverrideForm.Show;
            end;
    omWait: begin
              if not (soPreviewModal in ReportSystem.SystemOptions) then
              begin
                // Espera para cerrar
                repeat
                  Sleep(250);
                  Application.ProcessMessages;
                until not OverrideForm.Visible;
              end;
            end;
    omFree: begin
              if (ReportSystem.SystemFiler.StreamMode In [smTempFile, smFile]) then
              begin
                (OverrideForm As TFormRavePreview).RvRenderPreview.NDRStream.Free;
                (OverrideForm As TFormRavePreview).RvRenderPreview.NDRStream := Nil;
              end;
              FreeAndNil(OverrideForm);
            end;
  end;
end;

procedure TForm1.RvSystem1OverrideSetup(ReportSystem: TRvSystem;
OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
  case OverrideMode of
    omCreate: begin
                OverrideForm := TFormRaveSetup.Create(nil);
                OverrideForm.Caption := RvSystem1.TitleSetup;
                (OverrideForm as TFormRaveSetup).ReportSystem := ReportSystem;
              end;
    omShow: begin
              with OverrideForm as TFormRaveSetup, ReportSystem do
              begin
                PreviewSetup := False;
                Aborted := ShowModal = mrCancel;
              end;
            end;
    omWait: begin
              {No es necesario esperar a causa del showModal}
            end;
    omFree: OverrideForm.Free;
  end;
end;

procedure TForm1.RvSystem1OverrideStatus(ReportSystem: TRvSystem;
OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
  if not(soShowStatus in ReportSystem.SystemOptions) then exit;
  case OverrideMode of
    omCreate: begin
                OverrideForm := TFormRaveStatus.Create(self);
                OverrideForm.Caption := RvSystem1.TitleStatus;
                (OverrideForm as TFormRaveStatus).ReportSystem := ReportSystem;
              end;
    omShow: with OverrideForm as TFormRaveStatus,ReportSystem do
            begin
              BaseReport.StatusLabel := StatusLabel;
              CancelButton.Caption := Trans('Cancelar');
              Show;
            end;
    omWait: with OverrideForm as TFormRaveStatus,ReportSystem do
            begin
              if soWaitForOK in SystemOptions then
              begin
                CancelButton.Caption := Trans('Aceptar');
                CancelButton.ModalResult := mrOk;
                FormClosed := false;
                repeat  Application.ProcessMessages;  until FormClosed;
              end;
            end;
    omFree: FreeAndNil(OverrideForm);
  end;
end;

The end (se acabó)

Salu2.

Colgueit 05-05-2006 15:36:40

Gracias
 
Gracias por tu ayuda!!
He hecho todo lo que dices y perfecto, ya tengo el Rave Report en español :D .

Solo he tenido que modificar unas cosillas ya que no me compilaba.
En los formularios que adjuntas donde pone "Collage" me da error pero he puesto "FCollage" y me va bien. En donde pone "Duplex" me pasa igual, no me compila así, pero poniendo "FDuplex" va todo bien.

Un Saludo!

Alejandro73 22-10-2007 23:21:59

Me aparece este error
 
Hola

Realice que aqui diden pero me marca error aqui

OverrideForm := TFormRavePreview.Create(self);

si me pueden indicar que estoy haciendo mal se los agradecere

Saludos

Alejandro
Valparaiso - CHILE

dec 22-10-2007 23:28:02

Hola,

Probablemente el compilador no sepa dónde está el tipo "TFormRavePreview". Acabo de descargar el archivo Zip que enlaza el compañero Germán y, efectivamente, en él se encuentra un "TFormRavePreview"... así que tal vez tengas que utilizar dichos archivos. Fíjate que incluye unas instrucciones en "Leeme.txt".

ManiacPC 16-06-2010 22:18:56

Más vale tarde que nunca
 
Desde este post hasta ahora ha pasado mucho, pero recién lo vengo a probar y pasé por lo mismo que tenía problemas mi compatriota más arriba... Así que comento el "cómo me resultó" para los futuros que lleguen desde google para acá:

0) No se si existe otra más nueva, pero yo estoy usando Rave Reports 7.5.2 y BDS 2007
1) En los uses de tu form incluir el ravepreview, ravesetup, ravestatus.
2) En los eventos de tu RvSystem seleccionar las respectivas 3 funciones de Germán, (En los eventos OverridePreview, OverrideSetup, OverrideStatus).
3) Cambiar en el código de las procedures lo siguiente:
(en RvSystem1OverrideSetup)
OverrideForm.Caption := RvSystem1.TitleSetup;

Reemplaza RvSystem1 por el nombre de tu RvSystem.

Lo mismo en el procedure OverRideStatus.

4) Obviamente cambiar el nombre del ejemplo de "TForm1" a tu formulario y declararlos previamente.

Saludos y brillante trabajo de traducir estos diálogos (Y)
Si algo está mal de lo q hice obviamente no duden en responder :D

ladeluno 23-04-2012 16:31:58

Buenas!
El tema es un poco antiguo... veremos si alguien me responde :D

Quiero tener el rave reports en español, pero utilizo c++, alguien tendra este mismo archivito pero para c++? Muchísimas gracias!


La franja horaria es GMT +2. Ahora son las 01:14:46.

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