Código de ejemplo para funciones de controlador de informes de EGL

A continuación figuran fragmentos de código que muestran cómo rellenar un informe utilizando tres orígenes de datos distintos:
  • Una conexión de base de datos
  • Un registro de datos
  • Un conjunto de resultados de una sentencia SQL
El fragmento de código siguiente muestra cómo se genera un informe utilizando una conexión de base de datos como origen de datos (la sentencia SQL está en el archivo de diseño .jasper):
//Declaración de variable
myReport     Report;
myReportData ReportData;

//Función que contiene código de invocación de informes
function makeReport()
	//Inicializar ubicaciones de archivo de informe
	myReport.reportDesignFile = 
		"c:\\workspace\\report_project\\bin\\report_package\\myReport.jasper";;
	myReport.reportDestinationFile = "c:\\temp\\myReport.jrprint";

//Obtener los datos de informe por medio de una conexión
	sysLib.defineDatabaseAlias("alias", "nombreConexión");
sysLib.connect("alias", "IDusuario", "contraseña");
	myReportData.connectionName = "alias";
	  myReport.reportData = myReportData;


//Cumplimentar el informe con datos
reportLib.fillReport(myReport, DataSource.databaseConnection);

//Exportar el informe en formato PDF
	myReport.reportExportFile = "c:\\temp\\reportDesignFileName.pdf";
	     reportLib.exportReport(myReport, ExportFormat.pdf);
end
El fragmento de código siguiente muestra cómo se genera un informe utilizando su propio registro interno como origen de datos. En primer lugar, deberá definir un registro como el siguiente en alguna ubicación externa al programa:
Record myRecord type BasicRecord
	author String;
	description String;
	title String;
end
A continuación, escribirá la función para rellenar y controlar el informe:
//Declaraciones de variable
myReport     Report;
myReportData ReportData;

recArray        myRecord[];
recArrayElement myRecord;

//Función que contiene el código de control de informe
function makeReport()
//Inicializar ubicaciones de archivo de informe
	myReport.reportDesignFile = 
		"c:\\workspace\\report_project\\bin\\report_package\\myReport.jasper";;
	myReport.reportDestinationFile = "c:\\temp\\myReport.jrprint";

//Obtener los datos de informe 
	populateReportData();
	  myReport.reportData = myReportData;

//Cumplimentar el informe con datos
	      reportLib.fillReport(myReport, DataSource.reportData);

//Exportar el informe en formato HTML
	myReport.reportExportFile = "c:\\temp\\myReport.html";
	      reportLib.exportReport(myReport, ExportFormat.html);
end

function populateReportData()
	recArrayElement.author="Jane Austen";
	recArrayElement.title="Northanger Abbey";
	recArrayElement.description = "British Novel";
	recArray.appendElement(recArrayElement);

	recArrayElement.author = "Jane Austen";
	recArrayElement.title="Emma";
	recArrayElement.description = "British Novel";
	recArray.appendElement(recArrayElement);

	recArrayElement.author = "Charles Dickens";
	recArrayElement.title="Our Mutual Friend";
	recArrayElement.description = "British Novel";
	recArray.appendElement(recArrayElement);

	recArrayElement.author = "Gustave Flaubert";
	recArrayElement.title="Madame Bovary";
	recArrayElement.description = "French Novel";
	recArray.appendElement(recArrayElement);

	recArrayElement.author = "M. Lermontov";
	recArrayElement.title="Hero of Our Time";
	recArrayElement.description = "Russian Novel";
	recArray.appendElement(recArrayElement);
end
El fragmento de código siguiente muestra cómo se genera un informe utilizando una sentencia SQL como origen de datos. Este ejemplo presupone que existe una conexión de base de datos por omisión en el archivo de propiedades del programa:
//Declaración de variable
myReport     Report;
myReportData ReportData;

//Función que contiene código de control de informe
function makeReport()
//Inicializar ubicaciones de archivo de informe
	myReport.reportDesignFile = 
		"c:\\workspace\\report_project\\bin\\report_package\\myReport.jasper";;
	myReport.reportDestinationFile = "c:\\temp\\myReport.jrprint";

//Obtener los datos de informe por medio de una sentencia SQL
	  myReportData.sqlStatement = "SELECT * FROM dataBaseTable";
	  myReport.reportData = myReportData;

//Cumplimentar el informe con datos
	  reportLib.fillReport(myReport, DataSource.sqlStatement);

//Exportar el informe en formato de texto
	myReport.reportExportFile = "c:\\temp\\myReport.txt";
	  reportLib.exportReport(myReport, ExportFormat.text);
end
Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.