Para forzar el cierre del report background en cuando termine con el informe hay que añadir a la lista de parámetros que se le pasa al report el siguiente parámetro:
ADD_PARAMETER (

HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
DECLARE
v_wb ORA_JAVA.JOBJECT;
v_fileout ORA_JAVA.JOBJECT;
BEGIN
v_wb := hssfworkbook.new();
v_fileout := fileoutputstream.new('workbook.xls');
hssfworkbook.write(v_wb, v_fileout);
fileoutputstream.close(v_fileout);
END;
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
HSSFSheet sheet2 = wb.createSheet("second sheet");
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
DECLARE
v_wb ORA_JAVA.JOBJECT;
v_fileout ORA_JAVA.JOBJECT;
v_sheet1 ORA_JAVA.JOBJECT;
v_sheet2 ORA_JAVA.JOBJECT;
BEGIN
v_wb := hssfworkbook.new();
v_sheet1 := hssfworkbook.createsheet(v_wb, 'new sheet');
v_sheet2 := hssfworkbook.createsheet(v_wb, 'second sheet');
v_fileout := fileoutputstream.new('workbook.xls');
hssfworkbook.write(v_wb, v_fileout);
fileoutputstream.close(v_fileout);
END;
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
HSSFRow row = sheet.createRow((short)0);
// Create a cell and put a value in it.
HSSFCell cell = row.createCell((short)0);
cell.setCellValue(1);
// Or do it on one line.
row.createCell((short)1).setCellValue(1.2);
row.createCell((short)2).setCellValue("This is a string");
row.createCell((short)3).setCellValue(true);
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
DECLARE
v_wb ORA_JAVA.JOBJECT;
v_fileout ORA_JAVA.JOBJECT;
v_sheet ORA_JAVA.JOBJECT;
v_row ORA_JAVA.JOBJECT;
v_cell ORA_JAVA.JOBJECT;
BEGIN
v_wb := hssfworkbook.new();
v_sheet := hssfworkbook.createsheet(v_wb, 'new sheet');
v_row := hssfsheet.createrow(v_sheet, 0);
v_cell := hssfrow.createcell(v_row, 0);
hssfcell.setcellvalue(v_cell, 1);
v_cell := hssfrow.createcell(v_row, 1);
hssfcell.setcellvalue(v_cell, 1.2);
v_cell := hssfrow.createcell(v_row, 2);
hssfcell.setcellvalue(v_cell, 'This is a string');
v_cell := hssfrow.createcell(v_row, 3);
hssfcell.setcellvalue(v_cell, TRUE);
v_fileout := fileoutputstream.new('workbook.xls');
hssfworkbook.write(v_wb, v_fileout);
fileoutputstream.close(v_fileout);
END;
DECLARE
v_wb ORA_JAVA.JOBJECT;
v_fileout ORA_JAVA.JOBJECT;
v_sheet ORA_JAVA.JOBJECT;
v_row ORA_JAVA.JOBJECT;
v_cell ORA_JAVA.JOBJECT;
v_fin BOOLEAN := FALSE;
v_bloque VARCHAR2(30) := :system.cursor_block;
v_record_anterior NUMBER := :system.cursor_record;
v_item_anterior VARCHAR2(61) := :system.cursor_item;
v_item VARCHAR2(30);
v_num_celda NUMBER;
v_num_fila NUMBER;
BEGIN
v_wb := hssfworkbook.new();
v_sheet := hssfworkbook.createsheet(v_wb, 'new sheet');
v_num_fila := 0;
FIRST_RECORD;
WHILE NOT v_fin LOOP
v_row := hssfsheet.createrow(v_sheet, v_num_fila);
v_num_fila := v_num_fila + 1;
v_item := Get_Block_Property(v_bloque, FIRST_ITEM);
v_num_celda := 0;
WHILE v_item IS NOT NULL LOOP
v_cell := hssfrow.createcell(v_row, v_num_celda);
hssfcell.setcellvalue(v_cell, NAME_IN(v_bloque || '.' || v_item));
v_item := Get_Item_Property(v_bloque || '.' || v_item, NEXTITEM);
v_num_celda := v_num_celda + 1;
END LOOP;
IF :system.last_record = 'TRUE' THEN
v_fin := TRUE;
ELSE
NEXT_RECORD;
END IF;
END LOOP;
v_fileout := fileoutputstream.new('workbook.xls');
hssfworkbook.write(v_wb, v_fileout);
fileoutputstream.close(v_fileout);
GO_RECORD(v_record_anterior);
GO_ITEM(v_item_anterior);
END;
NOTA 15/12/2009: Las versiones recientes de las librerías de Jakarta POI están compiladas para usar una máquina virtual de java superior a la que tiene Forms 10g. Al importar en Forms10g sale este mensaje: "Se ha producido una excepción: java.lang.UnsupportedClassVersionError: org/apache/poi/hssf/usermodel/HSSFWorkbook (Unsupported major.minor version 49.0)". Con la versión 3.0.1 de las librerías funciona perfectamente. Esta versión se puede descargar de aqui: http://sites.google.com/site/elfeme/files/poi-3.0.2-FINAL-20080204.zip?attredirects=0&d=1
<param name="WebUtilMaxTransferSize" value="%WebUtilMaxTransferSize%"><param name="clientDPI" value="%clientDPI%">
