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 el siguiente archivo (simplemente hay que añadirlos al proyecto, y añadirloa al USES del form que contenga el control RvSystem):
[HTML]<a href="http://www.oksoft.es/desc/RaveReportsEsp.zip">RaveReportsEsp.ZIP</a>
[/HTML]
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
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
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.