PDA

Ver la Versión Completa : Imprimir Stringrid en Rave


romeroja
18-12-2003, 13:41:37
Tengo un problema al generar un reporte en rave en Delphi 7, hasta ahora lo que hacia era sacar los datos de un Clientdataset y con eso no tuve problemas, el tema es que quiero generar el reporte con los datos de un stringrid y no encuentro la forma de hacerlo, investigando encontre que el componente 'rvcustomconnection' tienen los enventos:

ongetcols y ongetrow
En el ongetcols escribo lo siguiente.

WriteField('Nombre', dtString, 20, '',''); {para crear una columna}

En el ongetrow

connection.WriteStrData('', grid2.Rows[i].text); {para crear una fila}

La verdad es que no encontre mucha informacion sobre el tema si alguien sabe algo, muchismas gracias por su ayuda;)

romeroja
21-12-2003, 14:22:48
Investigando puede llegar a una solucion espero que les sirva a alguien agrego el codigo que use en los eventos ongetCols y onGetRows del rvCustomconnection



procedure TForm2.RvCustomConnection1GetCols(
Connection: TRvCustomConnection);
begin
With Connection do
begin
DoGetCols; // Creo las columnas (campos)
WriteField('Apellido', dtString, 50, '','');
WriteField('Nombre', dtString, 50, '','');
WriteField('Provincia', dtString, 50, '','');
WriteField('Profesion', dtString, 50, '','');
end;
end;

procedure TForm2.RvCustomConnection1GetRow(
Connection: TRvCustomConnection);
var
i: integer;
begin
i := grid2.RowCount - 1;
Connection.DataRows := i;
if Connection.DataIndex < Connection.DataRows then
begin
TempList.Clear; // TStrings declarado Global
TempList.AddStrings(grid2.Rows[Connection.dataindex + 1]);// asigno al TStrings la fila de la grilla
Connection.WriteStrData( '',TempList.Strings[3]); //Asigno de la lista el elmento al campo correspondiente
Connection.WriteStrData( '',TempList.Strings[1]);
Connection.WriteStrData( '',TempList.Strings[0]);
Connection.WriteStrData( '',TempList.Strings[2]);
Connection.WriteNullData;
end
else
Connection.DoEOF;
end;




Espero que a alguien le sirva es la forma que encontre de hacerlo si alguien encuentra una manera distinta soy todo oidos
muchas gracias