Crear manualmente un manejador de informes de EGL

Si no desea utilizar el asistente Manejador de informes EGL nuevo para crear un manejador de informes, puede crear manualmente el manejador de informes.

Para crear manualmente el manejador de informes, siga estos pasos:
  1. Cree un archivo fuente EGL nuevo.
  2. Lleve a cabo una de las dos acciones siguientes:
    • Especifique manualmente el código del manejador.
    • Inserte un manejador utilizando la plantilla de manejador de informes de la manera siguiente:
      1. Vaya a la plantilla del manejador de informes y seleccione la plantilla que desea.
      2. Pulse Editar.
      3. Teclee handler seguido de Ctrl+espacio.
      4. Cambie el código de la plantilla según sea necesario.
El resto de este tema contiene ejemplos de código que muestran lo siguiente:

Puede copiar este código y modificarlo para su aplicación.

El código de ejemplo que muestra la sintaxis para crear manualmente un manejador de informes

El código siguiente muestra la sintaxis general para crear manualmente un manejador de informes de EGL:
handler handlerName type jasperReport
	
	 // Declaraciones de uso (opcional)
	 use usePartReference;
	
  	// Declaraciones de constante (opcional)
	 const constantName constantType = literal;
	
	 // Declaraciones de datos (opcional)
	 identifierName declarationType;
	
	 // Funciones de retorno de llamada Jasper predefinidas (opcional)
	 function beforeReportInit()
		...
	 	end
	
	 function afterReportInit()
...
  end
	
	 function beforePageInit()
		...
	 	end
	
	 function afterPageInit()
		...
	 	end
	
	 function beforeColumnInit()
		...
	 	end
	
	 function afterColumnInit()
		...
	 	end
	
	 function beforeGroupInit(stringVariable string)
		...
	 	end
	
	 function afterGroupInit(stringVariable string)
		...
	 	end
	
	 function beforeDetailEval()
		...
	 	end
	
	 function afterDetailEval()
		...
	 	end
	
	 // Funciones definidas por el usuario (opcional)
	 function myFirstFunction()
		...
	 	end
	
	 function mySecondFunction()
		...
	 	end
end

Ejemplo que muestra cómo obtener parámetros de informe

El fragmento de código siguiente muestra cómo obtener parámetros de informe en un manejador de informes:
handler myReportHandler type jasperReport
	
	 // Declaraciones de datos 
	 report_title	String;

	 // Función de retorno de llamada Jasper
	 function beforeReportInit()
...

 		  report_title = getReportTitle();

...
  end

	...
	
	 // Función definida por el usuario
	 function getReportTitle() Returns (String)
    	return (getReportParameter("ReportTitle"));
  	end
	
end

Ejemplo que muestra cómo establecer y obtener variables de informe

El fragmento de código siguiente muestra cómo establecer y obtener variables de informe en un manejador de informes:
handler myReportHandler type jasperReport
	
  	 // Declaraciones de datos 
	 employee_serial_number	int;

	 // Función de retorno de llamada Jasper
	 function afterPageInit()
		...
		  employee_serial_number = getSerialNumberVar();
		...
	 	end
	
	...
	
	 // Función definida por el usuario
	 function getSerialNumberVar() Returns (int)
    	employeeName String;
   	 employeeName = "Ficus, Joe";
   	 setReportVariableValue("employeeNameVar", employeeName);
   	 return (getReportVariableValue("employeeSerialNumVar"));
  	end
end

Ejemplo que muestra cómo obtener valores de campo de informe en un manejador de informes

El fragmento de código de ejemplo siguiente muestra cómo obtener valores de campo de informe en un manejador de informes
handler myReportHandler type jasperReport
	
	 // Declaraciones de datos 
	 employee_first_name	String;

	 // Función de retorno de llamada Jasper
	 function beforeColumnInit()
		  ...
		  employee_first_name = getFirstNameField();
		  ...
	 	end
	
  	...
	
	 // Función definida por el usuario
	 function getFirstNameField() Returns (String)
    	fldName String;
    	fldName = "fname";
    	return (getFieldValue(fldName));
  	end
	
end

Ejemplo que muestra cómo añadir un registro flexible de datos de informe en un manejador de informes

El código de ejemplo siguiente muestra cómo añadir un registro flexible de datos de informe en un manejador de informes:
handler myReportHandler type jasperReport
	
	 // Declaraciones de datos 
	customer_array 	customerRecordType[];
	c 			customerRecordType;

	 // Función de retorno de llamada Jasper
	 function beforeReportInit()
		  customer ReportData;
		  datasetName String;
		
   		//crear el objeto ReportData para el subinforme Customer
		  c.customer_num  = getFieldValue("c_customer_num");
    c.fname         = getFieldValue("c_fname");
    c.lname         = getFieldValue("c_lname");
    c.company       = getFieldValue("c_company");
    c.address1      = getFieldValue("c_address1");
    c.address2      = getFieldValue("c_address2");
    c.city          = getFieldValue("c_city");
    c.state         = getFieldValue("c_state");
    c.zipcode       = getFieldValue("c_zipcode");
    c.phone         = getFieldValue("c_phone");	
    customer_array.appendElement(c);
		  customer.data = customer_array;	
    	datasetName = "customer";
    	addReportData(customer, datasetName);
  		    end	
end

Ejemplo que muestra cómo un documento de diseño XML obtiene un registro de datos de informe del manejador de informes

El fragmento de código siguiente muestra cómo un documento de diseño XML obtiene un registro flexible de datos de informe del manejador de informes:
<jasperReport name="MasterReport" 
   scriptletClass="subreports.SubReportHandler">
...

<subreport>
	 <dataSourceExpression>
    <![CDATA[(JRDataSource)(((subreports.SubReportHandler) 
    $P{REPORT_SCRIPTLET}).getReportData( 
       new String("customer")))]]&gt;
  </dataSourceExpression>
	 <subreportExpression class="java.lang.String">
    <![CDATA["C:/RAD/workspaces/Customer.jasper"]]&gt;
  </subreportExpression>
</subreport>

...
</jasperReport>

Conceptos relacionados
Visión general del informe EGL
Visión general del proceso de creación de informes de EGL

Tareas relacionadas
Crear un archivo fuente EGL
Crear un manejador de informes de EGL
Utilizar plantillas de informe

Consulta relacionada
Biblioteca de informes de EGL
Manejador de informes de EGL
Funciones de manejador de informes predefinidas
Funciones de manejador de informes EGL adicionales

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.