Veamos... estoy revisando, porque esto lo hice hace mucho tiempo.
1) En el Data View Dictionary en la interfaz Rave tengo un DataView cuyo nombre de conexión es un Rave Custom Connection creado en Delphi. Recordar que antes el nombre de la conexión era un Rave Query Connection o Rave DataSet Connection, y que se cambió por la cuestión esta de los campos.
2) Yo selecciono el reporte en tiempo de ejecución (SelectReport), y listo. Sin embargo habrá que haberse escrito el código en los eventos mencionados antes.
En el evento OnOpen yo defino el número de filas así
Código Delphi
[-]
Connection.DataRows := AlgunQuery.FieldByName('NumeroRegistros').AsInteger;
Luego, en el evento OnGetCols escribo los nombres de las columnas (previamente no se ha indicado el número de columnas), así:
Código Delphi
[-]
Connection.WriteField('NombreCol1', TipoCol1, LongitudCol1, '', '');
Connection.WriteField('NombreCol2', TipoCol2, LongitudCol2, '', '');
...
Luego, en el evento OnGetRow, se escriben los valores de cada campo (columna)...
Código Delphi
[-]
...
Connection.WriteStrData('', ValorCampo1);
Connection.WriteStrData('', ValorCampo2);
...
Eso es todo. Espero que te sirva.
PD1. Quizás encuentres útil usar la propiedad FieldAliasList del RvCustomConnection. Yo la verdad nunca la usé.
PD2. Recomiendo leer la ayuda de Rave, y la lista de Tips & Tricks de Rave (en el sitio Web de Nevrona).
PD3. Uso la versión 5.0.8 de Rave para Delphi 7.