JPMMVR
12-03-2009, 13:43:16
Buenos dias, llevo 3 días intentando hacer un reporte con RAVE y les cuento:
He diseñado un reporte el cual tiene campos de datos que los ha de leer de manera dinamica, es decir, en el momento de imprimir los lee del mismo programa delphi. El reporte ya lo tengo y cuando quiero ver el resultado, me pone en todos los campos DATA TEXT del reporte (invalid).
Despues de mucho probar y leer en foros y paginas WEB, he logrado lo siguiente:
En mi programa Delhi tengo:
- Un componente TRvProject1: RvProject1
- Un componente TRvCustomConnection: RvCustomConnection1
En el reporte RAV he creado:
- Un Data Object->Direct Data View->RvCustomConnection1 (DT)->Finish
Esto genera:
Data View Dictionary
-DataView1
-DataView1FieldName
Cambio el Name = FArticulo y queda:
Data View Dictionary
-DataView1
-FArticulo
Ahora a este campo FArticulo le cambio el atributo
FieldName=Articulo
Selecciono en el reporte que he generado, el "DATA TEXT" que quiero que sea el Articulo y le cambio los atributos siguientes:
DataView=DataView1
DataField=Articulo
y bien, ahora en mi codigo Delphi le digo
procedure TForm1.SpeedButton_ImprimirClick(Sender: TObject);
begin
RvProject1.ProjectFile:='C:\rpArticulos.rav';
RvProject1.Execute;
end;
procedure TForm1.RvCustomConnection1Open( Connection:TRvCustomConnection);
begin
Connection.DataRows:=1;
end;
procedure TForm1.RvCustomConnection1GetRow( Connection: TRvCustomConnection);
begin
Connection.WriteStrData('', 'Mesa estilo Colonial');
end;
procedure TForm1.RvCustomConnection1GetCols( Connection: TRvCustomConnection);
begin
Connection.WriteField('Articulo', dtString, 100, '', '');
end;
Esto lo hace perfectamente, en el reporte me aparece en el campo Articulo
el valor 'Mesa estilo Colonial'. El problema es que no logro añadir dos campos más, en este caso Color y Precio.
No se como añadir al DataView1 más campos. La idea seria algi asi, pero no se como hacerlo.
Data View Dictionary
- DataView1
- FArticulo
- FColor
- FPrecio
He probado de insertar, pero no encuentro la manera de hacerlo.
Si hay alguien que pueda ayudarme y me pueda dar una solución al tema.
Gracias a todos
He diseñado un reporte el cual tiene campos de datos que los ha de leer de manera dinamica, es decir, en el momento de imprimir los lee del mismo programa delphi. El reporte ya lo tengo y cuando quiero ver el resultado, me pone en todos los campos DATA TEXT del reporte (invalid).
Despues de mucho probar y leer en foros y paginas WEB, he logrado lo siguiente:
En mi programa Delhi tengo:
- Un componente TRvProject1: RvProject1
- Un componente TRvCustomConnection: RvCustomConnection1
En el reporte RAV he creado:
- Un Data Object->Direct Data View->RvCustomConnection1 (DT)->Finish
Esto genera:
Data View Dictionary
-DataView1
-DataView1FieldName
Cambio el Name = FArticulo y queda:
Data View Dictionary
-DataView1
-FArticulo
Ahora a este campo FArticulo le cambio el atributo
FieldName=Articulo
Selecciono en el reporte que he generado, el "DATA TEXT" que quiero que sea el Articulo y le cambio los atributos siguientes:
DataView=DataView1
DataField=Articulo
y bien, ahora en mi codigo Delphi le digo
procedure TForm1.SpeedButton_ImprimirClick(Sender: TObject);
begin
RvProject1.ProjectFile:='C:\rpArticulos.rav';
RvProject1.Execute;
end;
procedure TForm1.RvCustomConnection1Open( Connection:TRvCustomConnection);
begin
Connection.DataRows:=1;
end;
procedure TForm1.RvCustomConnection1GetRow( Connection: TRvCustomConnection);
begin
Connection.WriteStrData('', 'Mesa estilo Colonial');
end;
procedure TForm1.RvCustomConnection1GetCols( Connection: TRvCustomConnection);
begin
Connection.WriteField('Articulo', dtString, 100, '', '');
end;
Esto lo hace perfectamente, en el reporte me aparece en el campo Articulo
el valor 'Mesa estilo Colonial'. El problema es que no logro añadir dos campos más, en este caso Color y Precio.
No se como añadir al DataView1 más campos. La idea seria algi asi, pero no se como hacerlo.
Data View Dictionary
- DataView1
- FArticulo
- FColor
- FPrecio
He probado de insertar, pero no encuentro la manera de hacerlo.
Si hay alguien que pueda ayudarme y me pueda dar una solución al tema.
Gracias a todos