Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

C++ y RaveReports

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: C++ y RaveReports Responder citando

hola amigos estoy utilizando el c++ 2009 y me toco la duda a la hora de hacer reportes con ravereport, misteriosamente en el foro no habia tema relacionado (digo misteriosamente porque que no hay en este super foro ), bueno para que siga siendo super alla va como hacer la conexion

Código:
Los siguientes pasos serían para crear una conexión a cualquier base d e datos desde C++ con Rave Reports:

1. Abrimos C++ y creamos un formulario.

2. Insertamos un componente de la clase TADOConnection (AC) en el formulario con el nombre BaseDatos.

3. Hacemos que AC  se enlace con la basede datos qu equerramos

4. Añadimos un componente TADOQuery (AQ).

5. Asociamos el AC con el AQ a traves de Connection.

6. El propiedad SQL de; AQ escibimos la consula deseada Ejemplo:
SELECT * FROM CLIENTES, luego lo activamos.

7. Insertamos en el formulario un componente TRvProject d el apaleta Rave.

10. Insertamos otro componente de TRvSystem. Asociamos este componente con TRvProject con su propiedad Engine.

11. Añadimos al formulario un componente TRvDataSetConnection. En su propiedad DataSet elegimos AQ.

Con todo esto ya tenemos una conexión a una base de datos y un DataSet especial para que Rave pueda recoger los datos.

Dejando C++ abierto con nuestra base de datos conectada ejecutamos el programa Rave Reports. Una vez estamos en el diseñador vamos a efectuar los siguiente pasos:

1. Pulsamos el botón New Data Object.

2. Seleccionamos Direct Data View y pulsamos Next.

3. Nos aparecerá una lista de conexiones abiertas en C++ donde se estén utilizando componente TRvDataSetConnection. En nuestro caso aparecera AQ. Lo seleccionamos y pulsamos Finish.

4. Renombramos el objeto DataView1 creado y lo llamamos Clientes (opcional).

5. Seleccionamos en el menú de arriba Tools -> Report Wizards -> Simple Table.

6. Seleccionamos Clientes y pulsamos Next.

7. Seleccionamos los campos que deseemos aparezcan en el reporte y pulsamos Next.

8. Dejamos la ordenación como está y pulsamos Next.

9. En Report Title ponemos el nombre deseado y pulsamos Next.

10. Seleccionamos la fuente a nuestro gusto y pulsamos Generate.

11. Guardamos el informe en el mismo directorio que nuestro proyecto de C++ con el nombre Clientes.rav. Ya podemos cerrar el RaveReports

De vuelta a C++

1. El componente TRvProject lo asociamos a Clientes.rav a traves de la propiedad ProjectFile.

2. En un TButton programamos lo siguinte: RvProject->Execute();

ASI DE SENCILLO (Cualuier error no tengo el C++ abierto al redactar este texto , pero sera minimo el error). Como es obvio se puede hacer cualquier tipo de consulta con la tabla ya elegida.




Ahora me toca preguntar, si alguien sabe como hacer para cambiar el tipo de hoja en tiempo ejecucion por A4, carta, etc lo postea por favor solo me falta eso

gracias
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Buenas amigo, una pregunta pudiste resolver el tema de los tamaños de las hojas del reporte?, y te pregunto como coloco una imagen como encabezado en la primer hoja del reporte. gracias, utilizo builder 2007. un abrazo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Un enlace, con un pequeño manual para usarlo y generar un reporte sencillo aquí
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola Cesar, una consulta, ya tengo el reporte armado y funcionando, solo me quedan 2 detalles, haber si me puedes ayudar.

1)Como defino el tamaño de la hoja de impresion (A4, Oficio,etc...)
2)Se pueden poner los dialogos del RAVE Report en español? traducirlos de alguna manera?

Gracias desde ya
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gente encontre en internet un codigo de DELPHI para poner los dialogos del Rave Report en español, podrian ayudarme a pasarlo para borland c++?


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



Código:
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"



Cita:
Y por último, los eventos:


Código:

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;


aclara unos dialogos mas abajo que TFormRavePreview es un Form que se creo con ese nombre..
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.