subreportes reports pasar parametros numbervar ejemplos crystal compartidas crystal-reports

crystal-reports - reports - shared numbervar crystal report



Informes de Crystal, subinformes y variables compartidas (3)

Del artículo Agregar informes secundarios, Buscar subtotal y Gran total (Ir al informe principal) :

Crystal Reports es una aplicación de inteligencia de negocios utilizada para diseñar y generar informes de una amplia gama de fuentes de datos. Los informes secundarios son informes secundarios del informe principal que pueden integrarse en el informe principal. Los informes secundarios son muy útiles para generar informes.

Al agregar informes secundarios, se encuentra el subtotal y el total general de cada informe secundario en el informe principal.

Informe principal

Informe secundario 1

Sub Total: suma (LabTotal)

Informe secundario 2

Sub Total: suma (Ítem Total)

Gran total

Los informes secundarios son una opción muy útil en el informe de Crystal. Supongamos que queremos encontrar

Agregar el informe de Crystal

  1. Añadir nuevo elemento-> Crystal Report
  2. Si queremos crear Crystal Report en nuestro propio formato, seleccione "Como un informe en blanco" de la galería de informes de Crystal
  3. Haga clic derecho en los "campos de la base de datos" en los campos de la base de datos y seleccione las tablas de la base de datos luego haga enlaces (si es necesario)
  4. Haga clic derecho en "Sección de detalles" y agregue el informe secundario.
  5. Repita las mismas cosas que hemos hecho en el informe principal y arrastre los campos necesarios a la sección de detalles informe secundario

Por ejemplo: estamos creando informe laboral la tasa de trabajo total se puede calcular como

En campo de fórmula-nombre LabTotal

WhilePrintingRecords; Shared NumberVar LabTotal: = Suma ({PC_LABOUR_DETAILS.Total})

({PC_LABOUR_DETAILS) - tabla Total --- campo

y agregue la suma de LabTotal en el campo total secundario

Si tenemos otro informe secundario para agregar la página principal, otra vez haga clic derecho en la "Sección de detalles" y agregue una nueva sección -> Detalles (b) Y repita los pasos 4 y 5 Aquí estamos agregando el segundo informe secundario para el material y el subtotal de los materiales se pueden calcular como

En campo de fórmula -name ItemTotal

WhilePrintingRecords; Shared NumberVar ItemTotal: = Suma {PC_MATERIAL_DETAILS.Total})

({PC_MATERIAL_DETAILS) --table Total - campo

y agregue la suma de ItemTotal en el campo sub total

Informe principal

Para encontrar el total general de ambos informes secundarios

En nombre de campo de fórmula: GrandTotal

WhilePrintingRecords; Shared NumberVar ItemTotal; Shared NumberVar LabTotal; NumberVar TotalAmount; TotalAmount: = ItemTotal + LabTotal; Cantidad total

Tengo una fórmula @InitVars en el encabezado de página que incluye lo siguiente y líneas similares:

shared numbervar runWaste:=0;

En Details v, tengo un subinforme, que tiene una fórmula @SetRunWaste:

shared numbervar runWaste; if (OnFirstRecord) then ( if not(isnull({x.x-or})) and not(isnull({x.y-override})) and {x.y-override} = true then runWaste:={x.x-or} else runWaste:= {x.x} ); runWaste

Puedo ver que el resultado de esta fórmula en el subinforme es 18.00.

Sin embargo, tanto en otro subinforme, en Detalles az, y en el informe principal en Detalles w (como prueba), tengo la siguiente fórmula @test:

shared numbervar runWaste; runWaste;

En ambos lugares, se muestra como 0.00.

¿Por qué muestra 0 no 18?

Estoy usando Crystal Reports versión 11.0.0.895.


El problema es que @InitVars está en el encabezado de la página, no en el encabezado del informe. Está restableciendo la variable a 0 en la parte superior de cada página.

Mover @InitVars al encabezado del informe lo arregló para que aparezca el número correcto en el subinforme en Detalles az.

Sigo viendo un comportamiento extraño cuando incluyo la variable en el informe principal, pero como eso solo fue para la depuración, no como el objetivo principal, no me importa.


Tengo un vago recuerdo de que ahora tengo dificultades para justificar las variables compartidas que no pasan una copia de seguridad desde un subinforme. Sigue buscando; Lo bueno es el viernes por la tarde.

Editar : No puedo encontrar lo que estaba buscando, por lo tanto, un pensamiento general. Compruebe el tiempo de evaluación y asegúrese de que la sección posterior del informe principal esté evaluando después del informe integrado (WhilePrintingRecords podría ser su amigo aquí).