<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();
}
}
Thursday, August 25, 2016
Print to HTML ADF
Labels:
ADF,
custom file,
excel error,
file,
file download listener,
generate html code,
html,
jdeveloper 12.1.3,
print
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment