2010-02-27 2 views
0

/* * DynamicJasper : 런타임에 * 열, 그룹, 스타일 등을 지정하여 보고서를 동적으로 생성하기위한 라이브러리. 또한 많은 경우에 많은 시간을 절약 할 수 있습니다. * 많은 경우! (http://sourceforge.net/projects/dynamicjasper) * * Copyright (C) 2008 FDV Solutions (http://www.fdvsolutions.com) * *이 라이브러리는 무료 소프트웨어입니다. 당신은 그것을 재배포 할 수 있고/또는 * GNU 약소 일반 공중의 조건으로 수정한다 * * 자유 소프트웨어 재단이 발행 한 라이센스. * * 버전 2.1 또는 귀하의 선택에 따라 최신 버전을 선택하십시오. * *이 라이브러리는 유용 할 것이라는 희망으로 배포되었지만 * 어떤 보증도하지 않습니다. * * 상품성 또는 특정 목적에의 적합성에 대한 묵시적인 보증도 제공하지 않습니다. 자세한 내용은 GNU * * 약소 일반 공중 라이선스를 참조하십시오. * *이 라이브러리와 함께 GNU 약소 일반본 * 라이센스를 받아야합니다. 하지 않을 경우, 자유 소프트웨어에 기록 * * 재단, 주식 회사, (51) 프랭클린 스트리트, 5 층, 보스턴, 02110-1301 USA * * */데이터베이스에서 dJ로 d 속성으로 보고서를 보내는 방법

package ar.com.fdvs.dj.test; 

    import java.sql.*; 

    import java.awt.Color; 
    import java.util.Date; 
    import java.util.Locale; 

    import net.sf.jasperreports.view.*; 
    import ar.com.fdvs.dj.domain.AutoText; 
    import ar.com.fdvs.dj.domain.DynamicReport; 
    import ar.com.fdvs.dj.domain.Style; 
    import ar.com.fdvs.dj.domain.builders.FastReportBuilder; 
    import ar.com.fdvs.dj.domain.builders.StyleBuilder; 
    import ar.com.fdvs.dj.domain.constants.Font; 
    import ar.com.fdvs.dj.core.DJConstants; 
// import ar.com.fdvs.dj.test.*; 
    public class Main extends BaseDjReportTest { 

공공 DynamicReport buildReport MA() 예외를 throw합니다 { // Connection C = 새 Connection(); // C.Con(); CC 연결 C = 새 CC 연결(); C.Connection(); 성명 stmt; ResultSet rs = null; String SQL = "SELECT * FROM student"; stmt = C.Con(). createStatement(); rs = stmt.executeQuery (SQL); String res = "";

FastReportBuilder drb = new FastReportBuilder(); 

drb.setQuery(SQL, DJConstants.QUERY_LANGUAGE_SQL); 
      while (rs.next()){ 
       res= rs.getString("Name"); 
      **drb.addColumn("Name","Name", String.class.getName(),30);** 
      // drb.addc 
      } 
//.addColumn("Branch", "branch", String.class.getName(),30) 

    // .addColumn("Item", "item", String.class.getName(),50) 
// .addColumn("Item Code", "id", Long.class.getName(),30,true) 
// .addColumn("Quantity", "quantity", Long.class.getName(),60,true) 
// .addColumn("Amount", "amount", Float.class.getName(),70,true) 
drb.addGroups(2); 
        DynamicReport sa =drb.build(); 

drb.setSubtitle("This report was generated at " + new Date()) 
.setTemplateFile("templates/TemplateReportTest.jrxml") 

        .setUseFullPageWidth(true); 


Style atStyle = new     StyleBuilder(true).setFont(Font.COMIC_SANS_SMALL).setTextColor(Color.red).build(); 
Style atStyle2 = new StyleBuilder(true).setFont(new Font(9, Font._FONT_TIMES_NEW_ROMAN, false, true, false)).setTextColor(Color.BLUE).build(); 

/*** 
* Adding many autotexts in the same position (header/footer and aligment) makes them to be one on top of the other 
*/ 
//First add in the FOOTER 
drb.addAutoText(AutoText.AUTOTEXT_PAGE_X, AutoText.POSITION_HEADER, AutoText.ALIGNMENT_LEFT,200,40, atStyle); 
drb.addAutoText("Autotext below Page counter", AutoText.POSITION_FOOTER, AutoText.ALIGNMENT_LEFT); 

//Note the styled text: <b>msimone</b>, valid tags are: <b>, <i> and <u> 
drb.addAutoText("Created by <b>msimone</b>", AutoText.POSITION_FOOTER, AutoText.ALIGNMENT_RIGHT,200); 
drb.addAutoText(AutoText.AUTOTEXT_PAGE_X_SLASH_Y, AutoText.POSITION_FOOTER, AutoText.ALIGNMENT_RIGHT,30,30,atStyle2); 

drb.addAutoText(AutoText.AUTOTEXT_CREATED_ON, AutoText.POSITION_FOOTER, AutoText.ALIGNMENT_LEFT,AutoText.PATTERN_DATE_DATE_TIME); 

//Now in HEADER 
drb.addAutoText(AutoText.AUTOTEXT_PAGE_X_OF_Y, AutoText.POSITION_HEADER, AutoText.ALIGNMENT_LEFT,100,40); 
drb.addAutoText("Autotext at top-left", AutoText.POSITION_HEADER, AutoText.ALIGNMENT_LEFT,200); 

drb.addAutoText("Autotext at top-left (2)", AutoText.POSITION_HEADER, AutoText.ALIGNMENT_LEFT,200); 
drb.addAutoText("Autotext at top-center", AutoText.POSITION_HEADER, AutoText.ALIGNMENT_CENTER,200,atStyle); 

// DynamicReport dr = drb.build();

//i18N, you can set a Locale, different tha n the default in the VM 
drb.setReportLocale(new Locale("es","AR")); 
drb.setReportLocale(new Locale("pt","BR")); 
drb.setReportLocale(new Locale("fr","FR")); 

return sa; 

}

public static void main(String[] args) throws Exception { 
    **Main test = new Main(); 
    test.testReport();** 
    JasperViewer.viewReport(test.jp); 
      JasperDesignViewer.viewReportDesign(test.jr); 
    //JasperDesignViewer.viewReportDesign(DynamicJasperHelper.generateJasperReport(test.dr, test.getLayoutManager(),new HashMap())); 
} 

}

스레드 "주요"net.sf.jasperreports에 이유에서

예외 다음과 같은 예외와 나는 정말 캔트 그림을 점점이 코드 메신저를 쓰기 .engine.JRException : bean에서 필드 값을 가져 오는 중 오류가 발생했습니다. varchar at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty (JRAbstractBeanDataSource.java:123) net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue (JRBeanCollectionDataSource.java:100)에서 net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue (JRAbstractBeanDataSource.java:96) 에서 net.sf.에서 jasperreports.engine.fill.JRFillDataset.setOldValues ​​(JRFillDataset.java:818) at net.sf.jasperreports.engine.fill.JRFillDataset.next (JRFillDataset.java:782) at net.sf.jasperreports.engine.fill. JRBaseFiller.next (JRBaseFiller.java:1448) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport (JRVerticalFiller.java:108) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:923) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:845) at net.sf.jasperreports.engine.fill.JRFiller.fillReport (JRFiller. java : 85) at net.sf.jasperreports.engine.JasperFillManager.fillReport (JasperFillManager.java:624) at ar.com.fdvs.dj.test.BaseDjReportTest.testReport (BaseDjReportTest.java:93) at ar. com.fdvs.dj.test.Main.main (Main.java:121) 발생 원인 : java.lang.NoSuchMethodException : 클래스 'class ar.com.fdvs.dj.test.domain.Product의 알 수없는 속성'varchar ' ' at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty (PropertyUtilsBean.java:1322) at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty (PropertyUtilsBean.java:770) at org.apache.commons.beanutils.PropertyUtilsBean.getProperty (PropertyUtilsBean.java:846) at org.apache.commons.beanutils.PropertyUtils.getProperty (PropertyUtils.java:426) at net.sf.jasperreports.engine. data.JRAbstractBeanDataSource.getBeanProperty (JRAbstractBeanDataSource.java:111) ... 12 개 자바 결과 : 1

답변

2

당신은 이미 알고있을 수도 있지만, 어딘가에, 코드라는 속성에 액세스하려고 할 것 같습니다 제품 개체의 "varchar":

원인 : java.lang.NoSuchMethodException : 클래스 'class ar.com.fdvs.dj.test.domain.Product'at ..... 클래스의 알 수없는 속성 'varchar'

예를 들어 어디에서 이런 일이 발생하는지 알 수 없습니다. 이름이 예상되는 장소가있을 수 있으며 대신 유형을 전달하는 것일 수 있습니다. 또는 구성 어딘가에 이름과 유형이 전환되어 "varchar"라는 필드를 찾고 있습니다. 말이 돼?

일반적으로 오류 로그의 "원인"부분이 가장 유익하다는 것을 알았습니다.

관련 문제