Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir Stringrid en Rave (https://www.clubdelphi.com/foros/showthread.php?t=6110)

romeroja 18-12-2003 13:41:37

Imprimir Stringrid en Rave
 
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

Código:


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


La franja horaria es GMT +2. Ahora son las 03:57:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi