Ver Mensaje Individual
  #4  
Antiguo 18-11-2006
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 24
mlara Va por buen camino
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 [-]
  // Antes se harán las consultas pertinentes para determinar los valores de cada campo.
  ...
  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.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 18-11-2006 a las 16:58:40.
Responder Con Cita