2001 JI Open Discussion Posted August 14, 2006 Share Posted August 14, 2006 By: Shiva Murali - shivva Infinite loop 2002-05-19 20:34Hi.. with jasper 0.2.5 if a field overflows then itz getting truncated. But with jasper 3 , if a field overflows, the scriptlet is entering into an infinite loop. can anyone help on this regard. thanks shivva.. By: Teodor Danciu - teodord RE: Infinite loop 2002-05-19 23:53 Hi, I'll try to look into this. Maybe you could send me your XML report design and the scriptlet class. Thanks, Teodor By: Shiva Murali - shivva RE: Infinite loop 2002-05-20 00:58Here is my xml and the scriptlet class. It gets in to infinte loop when the field "otherterms" overflows. its a blob field. gets into infinte loop with the latest jasper (3.0). 888888888888888888888888888888888888888888 XML 888888888888888888888888888888888888888888 <?xml version="1.0"?> <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://www.jasperreports.com/dtds/jasperreport-0.2.5.dtd"> <jasperReport name="ctrfile_print" printOrder="Vertical" pageWidth="595" pageHeight="900" leftMargin="20" rightMargin="20" topMargin="2" bottomMargin="2" isTitleNewPage="false" isSummaryNewPage="false" scriptletClass=" com.justcommodity.cxc.utils.ContractPrintScriptlet"> <reportFont name="Arial_Normal" isDefault="true" fontName="Arial" size="8" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <reportFont name="Arial_Bold" isDefault="false" fontName="Arial" size="8" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <reportFont name="Arial_Italic" isDefault="false" fontName="Arial" size="8" isItalic="true" pdfFontName="Helvetica-Oblique" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <reportFont name="Comic_Normal" isDefault="false" fontName="Comic Sans MS" pdfFontName="COMIC.TTF" pdfEncoding="Identity-H" isPdfEmbedded="true"/> <reportFont name="Comic_Bold" isDefault="false" fontName="Comic Sans MS" isBold="true" pdfFontName="COMICBD.TTF" pdfEncoding="Identity-H" isPdfEmbedded="true"/> <reportFont name="Courier_New" isDefault="false" fontName="Courier New Bold" isBold="true" pdfFontName="../lib/ext/courbd.ttf" pdfEncoding="Identity-H" isPdfEmbedded="true"/> <parameter name="contractId" class="java.lang.String"/> <parameter name="memberId" class="java.lang.String"/> <queryString><![CDATA[sELECT * FROM ctr WHERE ctrid = $P{contractId} ORDER BY ctrdate]]></queryString> <field name="ctrref" class="java.lang.String"/> <field name="ctrdate" class="java.sql.Timestamp"/> <field name="ctrid" class="java.lang.Integer"/> <field name="byrid" class="java.lang.Integer"/> <field name="slrid" class="java.lang.Integer"/> <field name="ctrprice" class="java.lang.Double"/> <field name="currencyid" class="java.lang.String"/> <field name="commodityid" class="java.lang.String"/> <field name="qtyunit" class="java.lang.String"/> <field name="ctermid" class="java.lang.String"/> <field name="packing" class="java.lang.String"/> <field name="shipmonth" class="java.lang.String"/> <field name="ctrbasisid" class="java.lang.String"/> <field name="quantity" class="java.lang.Double"/> <field name="paytermid" class="java.lang.Integer"/> <variable name="companyname" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="companyaddr" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="companytel" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="companyfax" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="companytlx" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="commodity" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="cpaddr" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="footrfld1" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="footrfld2" class="java.lang.String" resetType="Page" calculation="System" /> <variable name="origin" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="destport" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="destportcntry" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="duringarival" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="payterms" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="otherterms" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="specdet" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="blorigin" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="unitdesc" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="specname" class="java.lang.String" resetType="Page" calculation="System"/> <variable name="tempvar1" class="java.lang.String" resetType="Page" calculation="Nothing"> <variableExpression> ($P{memberId}.toString().equals($F{byrid}.toString()))?"bought from" :(($P{memberId}.toString().equals($F{slrid}.toString()))?"sold to":"***") </variableExpression> </variable> <title> <band height="70"> <textField> <reportElement x="0" y="0" width="325" height="24" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="20" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String">$V{companyname}</textFieldExpression> </textField> <textField> <reportElement x="0" y="25" width="325" height="11" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="9" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">$V{companyaddr}</textFieldExpression> </textField> <textField> <reportElement x="0" y="40" width="325" height="11" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="9" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">"Tel : "+$V{companytel}+" Fax : "+$V{companyfax}+" Tlx : "+$V{companytlx}</textFieldExpression> </textField> <line> <reportElement x="0" y="60" width="555" height="0" forecolor="#111111" backcolor="#EEEEEE"/> <graphicElement stretchType="NoStretch"/> </line> </band> </title> <pageHeader> <band height="0"> </band> </pageHeader> <columnHeader> <band height="0"> </band> </columnHeader> <detail> <band height="580"> <textField> <reportElement x="0" y="10" width="555" height="34" forecolor="#111111"/> <textElement textAlignment="Center" lineSpacing="Double"> <font size="15" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">($P{memberId}.toString().equals($F{byrid}.toString()))?"PURCHASE CONTRACT" :(($P{memberId}.toString().equals($F{slrid}.toString()))?"SALE CONTRACT":"NONE")</textFieldExpression> </textField> <textField > <reportElement x="0" y="55" width="250" height="75" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">$V{cpaddr}</textFieldExpression> </textField> <textField> <reportElement x="355" y="55" width="200" height="12" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">"Contract No : " + $F{ctrref}</textFieldExpression> </textField> <staticText> <reportElement x="355" y="70" width="75" height="12" forecolor="#111111"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false"/> </textElement> <text>Contract Date :</text> </staticText> <textField pattern="EEE, MMM d, yyyy"> <reportElement x="425" y="70" width="125" height="12"/> <textElement textAlignment="Left"> <font size="10"/> </textElement> <textFieldExpression class="java.sql.Timestamp"> $F{ctrdate} </textFieldExpression> </textField> <textField> <reportElement x="0" y="135" width="555" height="12" /> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false"/> </textElement> <textFieldExpression class="java.lang.String">"We are pleased to confirm having "+$V{tempvar1}+" you under the following terms and conditions :"</textFieldExpression> </textField> <staticText> <reportElement x="0" y="160" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <text>-- COMMODITY SPECIFICATIONS --</text> </staticText> <textField> <reportElement x="10" y="178" width="545" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String">$V{commodity}</textFieldExpression> </textField> <textField> <reportElement x="10" y="195" width="545" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "As Per Standard "+ $V{specname}+ " specs :" </textFieldExpression> </textField> <textField> <reportElement x="10" y="212" width="545" height="100"/> <textElement textAlignment="Left" lineSpacing="Single"> <font reportFont="Courier_New" size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> $V{specdet} </textFieldExpression> </textField> <textField> <reportElement x="0" y="320" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- ORIGIN-- "+$V{origin} </textFieldExpression> </textField> <textField> <reportElement x="0" y="340" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- PRICE -- "+($F{currencyid})+" " +new DecimalFormat("0.00").format($F{ctrprice}.doubleValue())+" Per "+$V{unitdesc}+", BASIS "+$F{ctrbasisid}+" " +$V{destport}+", "+$V{destportcntry} </textFieldExpression> </textField> <textField> <reportElement x="0" y="360" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- QUANTITY -- "+ java.lang.String.valueOf(java.lang.Math.round(($F{quantity}).doubleValue()))+" "+$V{unitdesc}+", In "+$F{packing} </textFieldExpression> </textField> <textField> <reportElement x="0" y="380" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- SHIPMENT -- "+$V{duringarival}+" "+$F{shipmonth} </textFieldExpression> </textField> <textField> <reportElement x="0" y="400" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- PAYMENT -- "+$V{payterms} </textFieldExpression> </textField> <textField> <reportElement x="0" y="420" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"> "-- LOADPORT -- ANY "+$V{blorigin}+" PORT" </textFieldExpression> </textField> <staticText> <reportElement x="0" y="440" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true"/> </textElement> <text>-- OTHERS TERMS --</text> </staticText> <textField > <reportElement x="10" y="460" width="545" height="100"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" /> </textElement> <textFieldExpression class="java.lang.String"> $V{otherterms} </textFieldExpression> </textField> </band> </detail> <columnFooter> <band height="0"> </band> </columnFooter> <pageFooter> <band height="0"> </band> </pageFooter> <summary> <band height="150"> <staticText> <reportElement x="0" y="0" width="555" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false"/> </textElement> <text>Please stamp , sign and return to us the duplicate copy. </text> </staticText> <textField> <reportElement x="0" y="40" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" /> </textElement> <textFieldExpression class="java.lang.String">$V{companyname}</textFieldExpression> </textField> <staticText> <reportElement x="330" y="40" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" /> </textElement> <text>CONFIRMED ACCEPTANCE</text> </staticText> <staticText> <reportElement x="0" y="110" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true" /> </textElement> <text>.....................................................</text> </staticText> <staticText> <reportElement x="330" y="110" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" isBold="true" /> </textElement> <text>.....................................................</text> </staticText> <textField> <reportElement x="0" y="130" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" /> </textElement> <textFieldExpression class="java.lang.String">$V{footrfld1}</textFieldExpression> </textField> <textField> <reportElement x="330" y="130" width="225" height="12"/> <textElement textAlignment="Left" lineSpacing="Single"> <font size="10" isItalic="false" /> </textElement> <textFieldExpression class="java.lang.String">$V{footrfld2}</textFieldExpression> </textField> </band> </summary> </jasperReport> 888888888888888888888888888888888888888888 SCRIPTLET 888888888888888888888888888888888888888888 package com.justcommodity.cxc.utils; /** * Title: * Description: * Copyright: Copyright © 2000 Oilgrains Venture Asia Pacific Pte Ltd * Company: Oilgrains Venture Asia Pacific Pte Ltd * @author S.Murali * @version 1.0 */ import dori.jasper.engine.*; import java.sql.*; import java.util.*; import java.math.BigDecimal; import javax.naming.InitialContext; import javax.sql.DataSource; import java.util.*; import javax.rmi.PortableRemoteObject; import java.text.DecimalFormat; /** * */ public class ContractPrintScriptlet extends JRDefaultScriptlet { private String ctrid = new String(); private String mbrid = new String(); private String company = new String(); private Connection con = null; /** * */ public void beforeReportInit() throws JRScriptletException { System.out.println("BeforeReportInit***"); this.ctrid = (String)this.getParameterValue("contractId"); this.mbrid = (String)this.getParameterValue("memberId"); this.con = openConnection(); System.out.println("Connection initialized..........."); } /** * */ public void afterReportInit() throws JRScriptletException { System.out.println("AfterReportInit***"); } /** * */ public void beforePageInit() throws JRScriptletException { System.out.println("BeforePageInit***" ); } /** * */ public void afterPageInit() throws JRScriptletException { System.out.println("AfterPageInit***" ); setVariables(); } /** * */ public void beforeColumnInit() throws JRScriptletException { System.out.println("BeforeColumnInit***"); } /** * */ public void afterColumnInit() throws JRScriptletException { System.out.println("AfterColumnInit***"); } /** * */ public void beforeGroupInit(String groupName) throws JRScriptletException { System.out.println("BeforeGroupInit***" ); } /** * */ public void afterGroupInit(String groupName) throws JRScriptletException { System.out.println("AfterGroupInit***"); } /** * */ public void beforeDetailEval() throws JRScriptletException { System.out.println("BeforeDetail***"); } /** * */ public void afterDetailEval() throws JRScriptletException { System.out.println("AfterDetail***"); closeConnection(); } private static Connection openConnection() { try { /* String driver ="org.firebirdsql.jdbc.FBDriver"; String connectString = "jdbc:firebirdsql:knuth/3050:/home/firebird/cxcdata-v10.gdb"; String user = "sysdba";//"sa"; String password = "masterkey";//""; Class.forName(driver); Connection conn = DriverManager.getConnection(connectString, user, password); return conn; */ DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/cxcdata"); return ds.getConnection(); }catch(Exception ex) { ex.printStackTrace(); return null; } } private void closeConnection() { try { this.con.close(); this.con = null; System.out.println("Connection closed......."); } catch (Exception ex) { ex.printStackTrace(); } } private void setVariables() { try { String sql1 = "Select mbrname,mbraddress from jcmbr where mbrid = "+this.mbrid; String sql2 = "Select contactnum from jcmbrcontact where contacttypeid='P' and mbrid = "+this.mbrid; String sql3 = "Select contactnum from jcmbrcontact where contacttypeid='F' and mbrid = "+this.mbrid; String sql4 = "Select contactnum from jcmbrcontact where contacttypeid='T' and mbrid = "+this.mbrid; ResultSet rs = null; System.out.println(sql1); if (con == null) this.con = openConnection(); rs = con.createStatement().executeQuery(sql1); if (rs == null || !rs.next()){ this.setVariableValue("companyname","*"); this.setVariableValue("companyaddr","*"); }else{ this.setVariableValue("companyname",rs.getString("mbrname")); this.setVariableValue("companyaddr",formatAddress(rs.getString("mbraddress").trim(),"n")); rs.close(); } System.out.println(sql2); rs = con.createStatement().executeQuery(sql2); if (rs == null || !rs.next()){ this.setVariableValue("companytel","*"); }else{ this.setVariableValue("companytel",rs.getString("contactnum")); rs.close(); } System.out.println(sql3); rs = con.createStatement().executeQuery(sql3); if (rs == null || !rs.next()){ this.setVariableValue("companyfax","*"); }else{ this.setVariableValue("companyfax",rs.getString("contactnum")); rs.close(); } System.out.println(sql4); rs = con.createStatement().executeQuery(sql4); if (rs == null || !rs.next()){ this.setVariableValue("companytlx","*"); }else{ this.setVariableValue("companytlx",rs.getString("contactnum")); rs.close(); } this.company = this.getVariableValue("companyname").toString(); if(this.getParameterValue("memberId").toString().trim().equals(this.getFieldValue("slrid").toString().trim())){ this.setVariableValue("footrfld1","SELLER"); this.setVariableValue("footrfld2","BUYER"); }else if(this.getParameterValue("memberId").toString().trim().equals(this.getFieldValue("byrid").toString().trim())){ this.setVariableValue("footrfld1","BUYER"); this.setVariableValue("footrfld2","SELLER"); } this.setVariableValue("companyname",this.company); System.out.println("Seller id:"+this.getFieldValue("slrid")); if (this.mbrid.equals(this.getFieldValue("slrid").toString().trim())) this.setVariableValue("cpaddr",getAddress(this.getFieldValue("byrid").toString())); else this.setVariableValue("cpaddr",getAddress(this.getFieldValue("slrid").toString())); String sql = "Select commodityname from jccommodity where commodityid = '"+ this.getFieldValue("commodityid")+"'"; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("commodity","NONE"); }else{ this.setVariableValue("commodity",rs.getString("COMMODITYNAME")); rs.close(); } this.setVariableValue("specdet",getSpecDet()); sql = "select jccountry.countryname from "+ " ctrorigin,jccountry where ctrorigin.countryid = jccountry.countryid "+ " and ctrorigin.ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("origin","NONE"); }else{ this.setVariableValue("origin",rs.getString("COUNTRYNAME")); rs.close(); } sql = "Select commodityname from jccommodity where commodityid = '"+ this.getFieldValue("commodityid")+"'"; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("commodity","NONE"); }else{ this.setVariableValue("commodity",rs.getString("COMMODITYNAME")); rs.close(); } sql ="select portname,countryname from ctrcfmdport,jcport,jccountry "+ "where ctrcfmdport.portid = jcport.portid and jcport.countryid = jccountry.countryid "+ " and ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("destport","NONE"); this.setVariableValue("destportcntry","NONE"); }else{ this.setVariableValue("destport",rs.getString("PORTNAME")); this.setVariableValue("destportcntry",rs.getString("COUNTRYNAME")); rs.close(); } sql ="select isduring from ctrcnfstatus "+ "where ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("duringarival","NONE"); }else{ this.setVariableValue("duringarival",new String(rs.getBoolean("ISDURING")== true ?"DURING":"ARRIVAL")); rs.close(); } sql ="select portname,countryname from ctrcfmdport,jcport,jccountry "+ "where ctrcfmdport.portid = jcport.portid and jcport.countryid = jccountry.countryid "+ " and ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("destport","NONE"); this.setVariableValue("destportcntry","NONE"); }else{ this.setVariableValue("destport",rs.getString("PORTNAME")); this.setVariableValue("destportcntry",rs.getString("COUNTRYNAME")); rs.close(); } sql ="select paymethoddescn from jcpayterms a,jcpaymentmethod b "+ " where a.paytype = b.paymethodid and paytermid = "+this.getFieldValue("paytermid"); System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("payterms","NONE"); }else{ this.setVariableValue("payterms",rs.getString("PAYMETHODDESCN")); rs.close(); } sql ="Select maindesc from jccnfterms a,ctrcnfterms b where a.cnftermid = b.cnftermid and b.ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("otherterms","NONE"); }else{ String descn = rs.getString("MAINDESC"); this.setVariableValue("otherterms",(descn == null ? "-NULL-":descn)); rs.close(); } sql ="select countryname from ctrcnfstatus a,jccountry b "+ " where a.blorigin = b.countryid and a.ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("blorigin","NONE"); }else{ this.setVariableValue("blorigin",rs.getString("COUNTRYNAME")); rs.close(); } sql ="select qtydescn from jcqtyunit "+ " where qtyunitid = '"+this.getFieldValue("qtyunit")+"'"; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("unitdesc","NONE"); }else{ this.setVariableValue("unitdesc",rs.getString("QTYDESCN")); rs.close(); } sql ="select specname from jccommodityspec a,ctrcfmspec b"+ " where a.specid = b.specid and specseqid = 0 and b.ctrid = "+this.ctrid; System.out.println(sql); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ this.setVariableValue("specname","NONE"); }else{ this.setVariableValue("specname",rs.getString("SPECNAME")); rs.close(); } } catch (Exception ex) { ex.printStackTrace(); } } private String getAddress(String cpmbrid) { try { ResultSet rs = null; String sql = "Select mbrname,mbraddress from jcmbr where mbrid = "+cpmbrid; System.out.println(sql); String addr = new String(); if (con == null) con = openConnection(); rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()){ return "NONE"; }else{ addr = rs.getString("MBRNAME"); addr = addr + "n" + rs.getString("MBRADDRESS"); rs.close(); } System.out.println("Address:n"+addr); return addr.trim(); } catch (Exception ex) { ex.printStackTrace(); return null; } } private String getSpecDet() { try { String sql = "select d.specid,d.specname, specmin, specmax,specunit from"+ " jcspecdetails d, jccommodityspec m,ctrcfmspec r where" + " r.ctrid = "+this.ctrid +" and r.specid = m.specid and m.specid = d.specid "; System.out.println(sql); StringBuffer spec = new StringBuffer(""); if (con == null) con = openConnection(); ResultSet rs = con.createStatement().executeQuery(sql); if (rs == null || !rs.next()) return "NONE"; do { BigDecimal min = rs.getBigDecimal("SPECMIN"); BigDecimal max = rs.getBigDecimal("SPECMAX"); String unit = rs.getString("SPECUNIT"); String name = padBlanks(rs.getString("SPECNAME"),20,'B'); System.out.println(name); if (unit == null ) unit = "-nill-"; else if (unit.trim().equals("%")) unit = "PCT"; DecimalFormat fmt = (DecimalFormat)java.text.NumberFormat.getInstance(); fmt.setDecimalSeparatorAlwaysShown(true); fmt.applyPattern("0.00"); if (min != null){ spec.append(name).append(padBlanks(fmt.format(min.doubleValue()),8,'F')).append(" ").append(padBlanks(unit,10,'B')).append(" ").append(" MIN"); System.out.println(spec.toString()); } if (max != null) { max = new BigDecimal(java.lang.Math.round(max.doubleValue())); spec.append("n").append(name).append(padBlanks(fmt.format(max.doubleValue()),8,'F')).append(" ").append(padBlanks(unit,10,'B')).append(" ").append(" MAX").append("n"); System.out.println(spec.toString()); } }while(rs.next()); rs.close(); return spec.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } private String padBlanks(String str,int size,char flag) { if (str == null) str = new String("-nill-"); else str = str.trim(); System.out.println(str.length()); int len = str.length(); if (flag == 'B') { for(int i=0;i<=size- len;i++) str = str + " "; }else if (flag =='F') { String tmp = new String(); for(int i=0;i<=size- len;i++) tmp = tmp + " "; str = tmp+str; } return str; } private String formatAddress(String srcAddr,String delim) { try { StringTokenizer tokens = new StringTokenizer(srcAddr,delim); String dstAddr = new String(); while(tokens.hasMoreTokens()) dstAddr = dstAddr+ " "+tokens.nextToken().trim(); return dstAddr; } catch (Exception ex) { ex.printStackTrace(); return null; } } } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now