Zona-Crystal.com
- Crystal Reports: Manual Avanzado -
29
Otros de los benéficos de hacer link entre reportes, es poder hacer links entre las tablas que componen ambos
reportes, mediante la utilización de fórmulas, si es que los campos mediante los cuales queremos establecer la
relación son de diferentes tipos de datos.
En cuanto a la forma de ejecución, también encontramos dos tipos diferentes de subreportes:
En demanda Vs. In place subreports
Por default el subreporte se procesara cada vez que aparezca en el Reporte Principal. Esto puede hacer que si un
subreporte que esta ubicado en un Group Footer, se procese, tantas veces como veces que aparezca esa sección,
por lo cual se hace menos performante.
Para eliminar esta situación, hay una opción cuando se crea el subreporte para que este sea en demanda. En
demanda significa que el subreporte va ser calculado cuando el usuario quiera, y no cuando se calcule el
Reporte Principal.
La forma que escojamos para trabajar con los subreportes, depende de diferentes aspectos, como ser, si el
reporte y el subreporte tienen cierta relación en cuanto a la información, si el reporte requiere que la
información sea On-Line o no, la cantidad de registros que deben consultar; todos estos aspectos influyen en la
decisión en la forma de ejecución de los subreportes
Pasando Variables entre reportes
Hay dos métodos para pasar información entre el Reporte Principal y el Subreporte, a través de campos
parámetros o a través de las variables shared
Si por el contrario queremos pasar información del Subreporte al Reporte Principal la única forma que tenemos
para hacer esto es mediante las variables shared.
Para realizar este tipo de pasaje de información, hay ciertos pasos que se deben seguir:
1) Mediante una fórmula, se debe declarar la variable de alcance Shared en el Reporte Principal
2) En otra fórmula o en la misma fórmula creada en el paso 1, se le debe asignar un valor a la variable
en el Reporte Principal para blanquear el valor de la misma.
3) Ya en el Subreporte, con otra fórmula, se la debe invocar o hacer referencia. Esto se realiza de la
misma forma en la que fue creada en el punto 1.
4) En la misma fórmula, se le asigna el valor del Subreporte que se desea pasar al Reporte Principal
5) Y por último, en el Reporte Principal, se genera otra fórmula, donde haga referencia a la variable y
tome el valor de la misma
Observaciones:
• Los pasos 1 y 2, deben estar en secciones anteriores a la sección donde se encuentra el subreporte y el
paso 5 debe estar en una sección posterior a la sección donde se encuentra el subreporte.
• Este tipo de pasaje de información no funciona en subreporte que son en demanda, debido a que no se
ejecutan hasta que el usuario lo requiera, por lo tanto en el reporte principal no se contara con dicha
información, aun luego de que se ejecute, ya que al hacerlo es en una instancia diferente.