Ver Mensaje Individual
  #1  
Antiguo 13-02-2006
Avatar de German
German German is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 133
Reputación: 22
German Va por buen camino
Lightbulb 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 ) 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.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas...
Tengo las teclas desordenadas... Tengo el desorden muy controlado...
Tengo el control en mis manos.
Responder Con Cita