Thursday, August 25, 2016

Print to HTML ADF

       
       
   <af:link text="Print" id="l1" icon="/resources/images/print.gif" partialSubmit="false"
                                 targetFrame="_blank" useWindow="true">
                            
                            <af:fileDownloadActionListener contentType="text/html"
                                                           filename="openPage.html"
                                                           method="#{pageFlowScope.rptsBean.generatePrint}"/>
                        </af:link>
       
public void generatePrint(FacesContext facesContext, OutputStream outputStream) throws IOException { Map pageFlowScope = AdfFacesContext.getCurrentInstance().getPageFlowScope(); Map sessionScope = ADFContext.getCurrent().getSessionScope(); try { OutputStreamWriter w = new OutputStreamWriter(outputStream, "UTF-16"); w.write("<html>"); w.write("<head>"); w.write("<style type=text/css>td{ font-family: Helvetica;font-SIZE: 11; } tr{ height: 18px; }</style>"); w.write("</head>"); w.write("<body>"); // w.write("<button onclick=\"myFunction()\">Print this page</button>"); // w.write("<script> function myFunction() { window.print();}</script>"); w.write("<table>"); w.write("<tr HEIGHT=18>"); w.write("<td BGCOLOR=\"#FFFFCC\" COLSPAN=12 ALIGN=CENTER><b> " + this.getRptDesc() + "</b></td></tr>"); // w.write("<td COLSPAN=6 ALIGN=RIGHT>Report Date: " + // new SimpleDateFormat("MM/dd/yyyy HH:mm").format(new Date()) + "</td></tr>"); w.write("<tr HEIGHT=18> <td BGCOLOR=\"#FFFFCC\" COLSPAN=12 ALIGN=CENTER><b> Company :" + pageFlowScope.get("company") + " " + "Currency :" + sessionScope.get("currencyCode") + " </b></td></tr>"); w.write("<tr HEIGHT=18> <td COLSPAN=12 BGCOLOR=\"#FFFFCC\" ALIGN=CENTER><b> Period ending: " + this.getPeriod() + "</b></td></tr>"); w.write("<tr><td COLSPAN=12 BGCOLOR=\"#FFFFCC\" ALIGN=CENTER><b>Report Run Date: " + new SimpleDateFormat("MM/dd/yyyy HH:mm").format(new Date()) + "</b></td></tr>"); // HSSFWorkbook workbook = new HSSFWorkbook(); // HSSFSheet worksheet = workbook.createSheet("POI Worksheet"); DCBindingContainer bindings = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry(); DCIteratorBinding dcIteratorBindings = bindings.findIteratorBinding("DynamicVO1Iterator"); // HSSFRow excelrow = null; // Get all the rows of a iterator oracle.jbo.Row[] rows = dcIteratorBindings.getAllRowsInRange(); int i = 0; for (oracle.jbo.Row row : rows) { //print header on first row in excel if (i == 0) { // excelrow = (HSSFRow) worksheet.createRow((short) i); short j = 0; w.write("<tr HEIGHT=21>"); for (String colName : row.getAttributeNames()) { // HSSFCell cellA1 = excelrow.createCell((short) j); if (!(colName.equalsIgnoreCase("SORT_ORDER") || colName.equalsIgnoreCase("P1"))) { if (colName.contains("_")) { colName = colName.replace("_", " "); if (colName.toUpperCase().contains("PERCENT")) { colName = colName.toUpperCase().replace("PERCENT", "%"); } if (j < 2 || colName.equalsIgnoreCase("ACCOUNT_DESCRIPTION")) { w.write("<th ALIGN=LEFT BGCOLOR=\"#99CCCC\"><FONT COLOR=BLACK FACE=\"verdana\" SIZE=1 > " + colName + " </th>"); } else { w.write("<th ALIGN=RIGHT BGCOLOR=\"#99CCCC\"><FONT COLOR=BLACK FACE=\"verdana\" SIZE=1 > " + colName + " </th>"); } // cellA1.setCellValue(colName); } else { // cellA1.setCellValue(colName); if (j < 2 || colName.equalsIgnoreCase("ACCOUNT_DESCRIPTION")) { w.write("<th ALIGN=LEFT BGCOLOR=\"#99CCCC\"><FONT COLOR=BLACK FACE=\"verdana\" SIZE=1 > " + colName + " </th>"); } else { w.write("<th ALIGN=RIGHT BGCOLOR=\"#99CCCC\"><FONT COLOR=BLACK FACE=\"verdana\" SIZE=1 > " + colName + " </th>"); } } } j++; } } w.write("</tr>"); //print data from second row in excel ++i; short j = 0; w.write("<tr HEIGHT=18>"); for (String colName : row.getAttributeNames()) { if (!(colName.equalsIgnoreCase("SORT_ORDER") || colName.equalsIgnoreCase("P1"))) { if (row.getAttribute(colName) != null) { if(j < 2 || colName.equalsIgnoreCase("ACCOUNT_DESCRIPTION")){ if (row.getAttribute(colName).toString().contains("_")) { w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + row.getAttribute(colName).toString().replaceAll("_", " ") + "</td>"); } else if (colName.equalsIgnoreCase("ACCOUNT")) { //numberFormatter = NumberFormat.getNumberInstance(new Locale("en", "US")); // System.out.println("row.getAttribute(colName).toString()" + // numberFormatter.format(row.getAttribute(colName)).toString()); // Integer amountOut = new Integer(numberFormatter.format(Integer.parseInt(row.getAttribute(colName).toString()))); System.out.println("this is the number" + row.getAttribute(colName)); w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=LEFT>" + row.getAttribute(colName) + "</td>"); } else{ w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=LEFT>" + row.getAttribute(colName) + "</td>"); } } else{ // make sure the description doesnm't have any "_" if (row.getAttribute(colName).toString().contains("_")) { w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=LEFT>" + row.getAttribute(colName).toString().replaceAll("_", " ") + "</td>"); } // check if the String is a number; If so set the locale for positive no and for negative no. remove the - sign and enclose with in "( )" //For decimal numbers don't format it else if (this.isNumber(row.getAttribute(colName).toString().substring(1))) { if (row.getAttribute(colName).toString().contains("-")) { numberFormatter = NumberFormat.getNumberInstance(new Locale("en", "US")); // System.out.println("------------------------------------" + // numberFormatter.format(row.getAttribute(colName)).toString()); // Integer amountOut = new Integer(numberFormatter.format(Integer.parseInt(row.getAttribute(colName).toString()))); try{ w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + numberFormatter.format(row.getAttribute(colName)).toString().replace("-", "(") + ")" + "</td>"); } catch(Exception e){ w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + row.getAttribute(colName).toString().replace("-", "(")+")" + "</td>"); } } else { if (colName.equalsIgnoreCase("ACCOUNT")) { //numberFormatter = NumberFormat.getNumberInstance(new Locale("en", "US")); // System.out.println("row.getAttribute(colName).toString()" + // numberFormatter.format(row.getAttribute(colName)).toString()); // Integer amountOut = new Integer(numberFormatter.format(Integer.parseInt(row.getAttribute(colName).toString()))); System.out.println("this is the number" + row.getAttribute(colName)); w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=LEFT>" + row.getAttribute(colName) + "</td>"); } else { numberFormatter = NumberFormat.getNumberInstance(new Locale("en", "US")); //System.out.println("row.getAttribute(colName).toString()" +row.getAttribute(colName).toString()); try{ w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + numberFormatter.format(row.getAttribute(colName)).toString() + "</td>"); } catch(Exception e){ System.out.println( "ctch blockkkkkkk"+row.getAttribute(colName).toString()); w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + row.getAttribute(colName).toString() + "</td>"); } } } // cell.setCellValue("(" + row.getAttribute(colName).toString() + ")"); } //In all other cases print the value as is else { if (row.getAttribute(colName).toString().contains(".")) { if (row.getAttribute(colName).toString().contains("-")) { numberFormatter = NumberFormat.getNumberInstance(new Locale("en", "US")); w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + numberFormatter.format(row.getAttribute(colName)).toString().replace("-", "(") + ")" + "</td>"); } else { w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + row.getAttribute(colName).toString() + "</td>"); } } else { w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=RIGHT>" + row.getAttribute(colName).toString() + "</td>"); // cell.setCellValue(row.getAttribute(colName).toString()); } } } }else { w.write("<td BGCOLOR=\"#FFFFCC\" ALIGN=LEFT>" + " " + "</td>"); //cell.setCellValue(""); } } // System.out.println("colName " + colName + "row.getAttribute(colName).toString()" + // row.getAttribute(colName)); j++; } w.write("</tr>"); } w.write("</table>"); w.write("</body>"); w.write("</html>"); w.flush(); } catch (Exception e) { e.printStackTrace(); } }