Jump to content


Photo

Generacion de Reportes en blanco Rave Reports


  • Please log in to reply
10 replies to this topic

#1 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 28 November 2014 - 04:38 PM

Hola amigos,

Tengo un pequeño inconveniente, no se porque razon cuando envio el reporte para su generacion,
este sale totalmente en blanco?, no es la primera vez que los hago, de hecho estoy
bastante familiarizado con rave, pero esta vez o me fallo o le falle :s
podrian echarle un ojito al codigo y decirme si hay algo malo?
El reporte ya esta construido y diseñado, las propiedades del dataview y el databand estan
establecidas, de hecho, lo puedo ver ya generado desde el diseñador de rave.

Saludos.



delphi
  1. procedure TFormPrincipal.ImprimirReporteDeNomina(FechaCorte:String);
  2. var
  3.   DireccionMisDocumentos,A:String;
  4.   Año, Mes, Dia:Word;
  5.   I:Integer;
  6.   MyFields: array of TField;
  7.   Temf: TStringField;
  8.   DataView: TRaveBaseDataView;
  9.   myPage:TRavePage;
  10.   MyDataText:TRaveDataText;
  11.   MyText:TRaveText;
  12.   //MyPage2:TRavePage;
  13.   nMarginBottom, nMarginLeft, nMarginRight, nMarginTop: Double;
  14. begin
  15.   with RvProject1 do
  16.     begin
  17.       SetLength(FechaCorte,10);
  18.  
  19.       //A:=GetCurrentDir()+'\Data\NOMREP1.rav';
  20.       ProjectFile:=GetCurrentDir()+'\Data\NOMREP1.rav';
  21.       Open;
  22.       //LoadFromFile(GetCurrentDir()+'\Data\NOMREP1.rav');
  23.       //StoreRAV:=True;
  24.       //ZQuery1.Fields.Clear;
  25.       //ZQuery1.Fields.Clear;
  26.       ZQuery1.Close;
  27.       ZQuery1.SQL.Clear;
  28.       ZQuery1.SQL.Add('Select');
  29.       ZQuery1.SQL.Add('NumeroEmpleado,');
  30.       ZQuery1.SQL.Add('Cargo,');
  31.       ZQuery1.SQL.Add('Nombre,');
  32.       ZQuery1.SQL.Add('Apellido,');
  33.       ZQuery1.SQL.Add('Format(Cedula,0),');
  34.       ZQuery1.SQL.Add('Ingreso,');
  35.       ZQuery1.SQL.Add('Format(SalarioMensual,2),');
  36.       ZQuery1.SQL.Add('Format(SalarioDiario,2),');
  37.       ZQuery1.SQL.Add('Format(CTDiario,2),');
  38.       ZQuery1.SQL.Add('DiasTrabajados,');
  39.       ZQuery1.SQL.Add('DiasLibres,');
  40.       ZQuery1.SQL.Add('CT,');
  41.       ZQuery1.SQL.Add('Ausencias,');
  42.       ZQuery1.SQL.Add('Format(SSO,2),');
  43.       ZQuery1.SQL.Add('Format(RPE,2),');
  44.       ZQuery1.SQL.Add('Format(FAOV,2),');
  45.       ZQuery1.SQL.Add('Format(TotalSueldo,2),');
  46.       ZQuery1.SQL.Add('Format(TotalSanciones,2),');
  47.       ZQuery1.SQL.Add('Format(TotalCT,2),');
  48.       ZQuery1.SQL.Add('Format(TotalDiasLibres,2),');
  49.       ZQuery1.SQL.Add('Format(TotalAusencias,2),');
  50.       ZQuery1.SQL.Add('Format(TotalAsignaciones,2),');
  51.       ZQuery1.SQL.Add('Format(TotalDeducciones,2),');
  52.       ZQuery1.SQL.Add('Format(TotalCobrar,2)');
  53.       ZQuery1.SQL.Add('From Constructor.ZRepNom');
  54.       ZQuery1.Open;
  55.       ZQuery1.Close;
  56.  
  57.       SetLength(MyFields, ZQuery1.FieldDefs.Count);
  58.       //Add one by one the fields to make them accesible.
  59.       for i:=0 to ZQuery1.FieldDefs.Count - 1 do
  60.         MyFields[i] := ZQuery1.FieldDefs[i].CreateField(ZQuery1);
  61.       //Create all Calculated Fields as you need
  62.       Temf := TStringField.Create(nil);
  63.       Temf.FieldKind := fkCalculated;
  64.       //Temf.FieldName := 'NewCalcField';
  65.  
  66.       Open;
  67.  
  68.       With ProjMan do
  69.         begin
  70.           Dataview := FindRaveComponent('DataView1',nil) as TRaveBaseDataView;
  71.           CreateFields(DataView, nil, nil, true); // refresh the dataview
  72.         end;
  73.  
  74.       With ProjMan do
  75.         begin
  76.           MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
  77.           MyText := FindRaveComponent('FECHACORTE',MyPage) as TRaveText;
  78.           MyText.Text:=FechaCorte;
  79.         end; { with }
  80.  
  81.       Save;
  82.       {
  83.       with IACProyectUnidades.ProjMan do
  84.         begin
  85.           nMarginBottom := 0.5;
  86.           nMarginLeft := 0.5;
  87.           nMarginRight := 0.5;
  88.           nMarginTop := 0.5;
  89.         end;
  90.         }
  91.       //seleccionamos el printer por defecto,
  92.       //asi salen los reportes tal cual queremos
  93.       //desde cualquier maquina con cualquier impresora
  94.       RpDev.SelectPrinter('microsoft xps document writer', False );
  95.       DireccionMisDocumentos:=GetMyDocuments;
  96.       if Not (DirectoryExists(DireccionMisDocumentos+'\Informes Luminatti\Nomina')) then
  97.         CreateDir(DireccionMisDocumentos+'\Informes Luminatti\Nomina');
  98.       //Label4.Caption:= 'Generando Reporte...';
  99.       RvSystem1.DefaultDest := rdFile;
  100.       RvSystem1.DoNativeOutput := false;
  101.       RvSystem1.RenderObject := RvRenderPDF1;
  102.       RvSystem1.OutputFileName := DireccionMisDocumentos+'\Informes Luminatti\Nomina\['+NOMREPMes.Text+' '+FechaCorte+']Reporte de Nómina.pdf';
  103.       RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
  104.       //ZConnection1.Connected:=False;
  105.       RvSystem1.Execute;
  106.       //Label4.Caption:= 'Reporte Generado!';
  107.       ShellExecute(FormPrincipal.Handle,nil,PChar(DireccionMisDocumentos+'\Informes Luminatti\Nomina\['+NOMREPMes.Text+' '+FechaCorte+']Reporte de Nómina.pdf'),'','',SW_SHOWMAXIMIZED);
  108.     end;
  109. end;


  • 0

#2 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 29 November 2014 - 11:49 AM

Esto es en la version XE2
  • 0

#3 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 posts
  • LocationMar del Plata / Bs As / Argentina

Posted 29 November 2014 - 12:51 PM




delphi
  1.       ZQuery1.Open;
  2.       ZQuery1.Close;



¿esto porque lo usas asi?
  • 0

#4 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 29 November 2014 - 05:25 PM




delphi
  1.       ZQuery1.Open;
  2.       ZQuery1.Close;



¿esto porque lo usas asi?


Tienes que abrir el Query para generar la consulta, luego lo cierras para cargas los campos, y pasarselos al dataview en el reporte.

De cualquier forma desactivandolo tampoco funciona



delphi
  1. //ZQuery2.Open;
  2.       //ZQuery2.Close;
  3.  
  4.       {
  5.       SetLength(MyFields, ZQuery2.FieldDefs.Count);
  6.       //Add one by one the fields to make them accesible.
  7.       for i:=0 to ZQuery2.FieldDefs.Count - 1 do
  8.         MyFields[i] := ZQuery2.FieldDefs[i].CreateField(ZQuery2);
  9.       //Create all Calculated Fields as you need
  10.       Temf := TStringField.Create(nil);
  11.       Temf.FieldKind := fkCalculated;
  12.       //Temf.FieldName := 'NewCalcField';
  13.       }


  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6301 posts
  • LocationArgentina

Posted 29 November 2014 - 08:48 PM

Desconozco como es que funciona Rave pero me extraña que digas que se necesita abrir e inmediatamente cerrar el dataset que alimenta al reporteador. Obviamente si lo cierras pierdes los datos y obtendrás un informe en blanco.

También me extraña que hagas un Open sobre rvProject1 en varias oportunidades. ¿Porqué?

Saludos,

  • 0

#6 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 30 November 2014 - 12:05 PM

Tienes razon, eso estaba demas alli, de echo lo habia cambiado antes pero no lo habia actualizado aqui,
gracias por la correccion.
  • 0

#7 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 30 November 2014 - 06:09 PM

He probado hacer una aplicacion desde 0 solo para generar un simple reporte, de igual forma me lo muestra en blanco...

Sera la version xe2?

Realmente me parece extraño, pues la ultima aplicacion completa que hice, fue usando D2010,
pruebo compilando esa aplicacion en XE2 y funciona bien, muestra el reporte correctamente.

Les dejo una captura con las propiedades de cada componente para la generacion del reporte,
aunque la he revisado inumerable veces, realmente no se si es que me estoy saltando algo.

Tengo dos dias trancado con esto, intentare bajar a la version 2010 y hacer pruebas.

Imagen Enviada
  • 0

#8 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 01 December 2014 - 04:37 PM

El error estaba a simple vista de todos

No es:

RvSystem1.Execute;

Es:
RvProject1.Execute;

No se como puedo ser tan ciego! Dos dias en este rollo...
  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14470 posts
  • LocationMéxico

Posted 01 December 2014 - 04:42 PM

El error estaba a simple vista de todos

No es:

RvSystem1.Execute;

Es:
RvProject1.Execute;

No se como puedo ser tan ciego! Dos dias en este rollo...


Suele suceder, es normal que teniendo las respuestas en las narices no se da uno cuenta :)

Saludos
  • 0

#10 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 02 December 2014 - 10:20 AM


El error estaba a simple vista de todos

No es:

RvSystem1.Execute;

Es:
RvProject1.Execute;

No se como puedo ser tan ciego! Dos dias en este rollo...


Suele suceder, es normal que teniendo las respuestas en las narices no se da uno cuenta :)

Saludos


De hecho por alguna extraña razón éstos errores son los más complicados de detectar  : : :

8o| 8o| 8o|

Qué bueno que lo has visto y corregido amigo (y)

Saludox ! :)
  • 0

#11 martini002

martini002

    Member

  • Miembros
  • PipPip
  • 16 posts

Posted 09 December 2014 - 06:05 PM

Gracias :)
  • 0




IP.Board spam blocked by CleanTalk.