Primero debe especificar si está tratando de usar un conjunto de datos definido en su aplicación, o un conjunto de datos definido directamente en su informe (pestaña Datos en el diseñador de FastReport).
Si está intentando usar un conjunto de datos definido dentro de su aplicación (por ejemplo, una instancia AdoDataset definida en uno de sus módulos de datos), para tal propósito, no tiene que vincular la MasterBand a su conjunto de datos . dinamicamente. Dentro del informe, su MasterBand está vinculada a una instancia TfrxDbDataset en tiempo de diseño. En tiempo de ejecución, su instancia frxDbDataset se puede conectar a cualquier conjunto de datos en su proyecto.
Aquí es cómo sería:
1- se le cae un componente frxReport y un componente frxDbDataset en su formulario o módulo de datos. 2- En el diseñador de informes, vaya a la sección Conjuntos de datos y agregue el archivo frxDbDataset disponible a la lista de conjuntos de datos del informe. 3- Agrega una banda de datos maestros y asigna el archivo frxDbDataset a su propiedad Dataset. 4- Ahora en su código, antes de mostrar o la preparación del informe, se puede escribir algo como esto:
if MyOption = 1 then
frxDbDataset1.Dataset := AdoDataset1
else
frxDbDataset1.Dataset := AdoDataset2;
Lo que se asigna a frxDbDataset se imprimirán por el maestro de banda en su informe.
Si está definiendo el conjunto de datos directamente dentro del informe, utilizando el diseñador de FastReport; entonces todo está dentro de tu informe. Simplemente abra el diseñador de informes rápidos y haga esto:
1- Vaya a la pestaña Datos y defina sus conjuntos de datos (por ejemplo, AdoQuery1). 2- Seleccione el objeto Informe del panel Árbol de informes. 3- En el inspector de objetos, vaya a la pestaña Eventos. 4- Elige un evento apropiado; OnStartReport es un buen evento para su trabajo. Haga doble clic en él para abrir el editor de código. 5- Ahora puede asignar el conjunto de datos definido en la pestaña de datos a la banda de datos maestros utilizando el código PascalScript. Algo como esto:
procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
MasterData1.Dataset := <ADOQuery1."ADOQuery1">;
end;
Su solución no funciona utilizando FastReports4/delphi XE2 Veo que la banda se imprime muchas veces si configuro StartNewPage, pero no puedo ver ningún dato en ella. ¿Hay un paso adicional para definir campos para él (dinámicamente, sin tener en cuenta los tipos de datos)? – ertx