CREATETABLE`mysqlcode`(->`id`TINYINT(255)UNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,->`content`VARCHAR(255)NOTNULL->)TYPE=MYISAMCHARACTERSETgbkCOLLATEgbk_chinese_ci;CREATETABLEadmin(admin_namechar(20)NOTNULL,admin_passwordchar(" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

jasperReport學習

系統 1849 0


mysql> CREATE TABLE `mysqlcode` (
-> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-> `content` VARCHAR( 255 ) NOT NULL
-> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;




CREATE TABLE admin (
admin_name char(20) NOT NULL,
admin_password char(20) NOT NULL
) TYPE=MyISAM,
default character set gbk;










類net.sf.jasperreports.engine.design.JasperDesign

之所以從這個類開始,是因為它的實例是jasperreport用于報表產生的原始類,比如,該類實例在用于產生報表的xml文件被解析后獲得,或者不產生xml文檔而是由調用jasperreport的應用程序產生。在所給的例子中有一個(noxmldesign)就是在不產生xml文件的情況下動態生成該實例的一個例子。所有該類的實例都屬于報表的填充和產生以前產生的,所以我們稱之為原始類。



類net.sf.jasperreports.engine.design.jasperreport

該類實例表現了報表設計對象,是作為報表的編譯過程的結果而被實例化,是向報表中填充數據的準備。在報表的編譯過程中協同驗證報表元素的合法性,一致性;同時創建了臨時文件存儲報表中所有的變量,表達式。編譯過程中會先查找classpath中tools.jar或者Ant進行編譯,編譯結果以字節碼的形式存儲,并且在填充數據時用于判斷多種產生報表的形式

類net.sf.jasperreports.engine.design.JasperCompileManager

該類允許用戶從文件,流等多種形式編譯xml,允許直接傳遞JasperDesign對象并接收相應的JasperReport對象,它是將報表設計xml文件編譯為等待填充的報表文件的入口類。其他方法:驗證報表合法性,構建JasperDesign類的實例也是十分有用的,尤其是針對可視化編輯器

類net.sf.jasperreports.engine.design.JasperPrint

報表填充完畢后產生該類的實例,這個對象可以被JasperReport內置報表瀏覽工具瀏覽,或者序列化存儲、發送等。該類的實例表現了JasperReport的報表輸出;除了作為標準格式以頁面形式存儲外還可以轉化為PDF, HTML, XML等多種形式。

類net.sf.jasperreports.engine.design.JRDataSource

就報表數據來說,JasperReport是十分靈活的,提供多種數據源,針對各種數據源都有相應的編程接口,每次報表填充時,都會產生特定場景的引擎實例

net.sf.jasperreports.view.JasperViewer
此類用來預覽生成的報表(generated reports.)。

net.sf.jasperreports.view.JasperDesignViewer
此類用來預覽報表設計(view the report design)。

JasperReports做報表有一下步驟:

1、 報表設計,可以用ireport可視化工具來實現,生成xml文件。完成后,可以直接到步驟3,直接編譯xml文件。
2、 如果已經存在報表設計文件(xml文件),可以用 net.sf.jasperreports.engine.xml.JRXmlLoader.load()方法載入報表設計,該方法返回 JasperDesign對象,通過JasperDesign對象,可以修改報表設計,比如:添加、刪除字段,添加、刪除變量,添加、刪除分組,等等。
3、 完成報表設計后,接下來就可以編譯報設計,編譯報表設計可以用類 net.sf.jasperreports.engine.JasperCompileManager的compileReport()方法來實現,該方法可以編譯xml文件或JasperDesign對象,產生JasperReport對象,JasperReport對象可序列化,能夠保存為文件(通常是.jasper文件)。類net.sf.jasperreports.engine.JasperCompileManager還可以把報表轉化為報表設計文件(xml文件)。得到JasperReport對象(可從.jasper文件實例化一個JasperReport對象)后,給報表填充數據產生 JasperPrint對象。JasperPrint對象可序列化,保存為文件。有了JasperPrint對象后,可以打印、瀏覽、轉換為其他格式的文件,如:PDF,HTML,XML,XLS,CSV等等,這些操作就是我們想得到的最終結果。盡管JasperPrintManager類可以導出為 PDF,XML文件,但是不贊成使用JasperPrintManager類來導出,建議用JasperExportManager類來導出PDF, HTML,XML文件;要導出XLS和CSV文件,用專業的導出類 net.sf.jasperreports.engine.export.JRXlsExporter類和 net.sf.jasperreports.engine.export.JRCsvExporter類

字段(Fields): 是數據庫抽取出來的,希望在報表中出現的數據庫內容。比如一個ID的所有值。$F{filedsName}

參數(Parameters):這是你的應用需要提供給報表的入口,比如你 希望在報表被解釋的時候提供Where語句的條件值。那么就可以 使用參數$P{parameterName}

變量(Variables):這是報表只能夠一些邏輯運算的表現,比如統計值。$V{variablesName}每種對象的定義格式如每個對象的后面說明,比如定義一個變量(Variables),
那么表達式就寫成$V{ variablesName },報表中出現的就是這個變量的名稱。

JasperReport填充數據有多種方法,不過最常用的就2種:一是直接在jrxml文件里嵌入sql語句,二是創建一個自己的數據源,記得這個數據源從JRDataSource繼承而來.JRDataSource有個方法一定要實現,即next以及getFieldValue,具體參見其API


2.中文問題的解決
在JAVA中,用ireport是個不錯的報表設計工具咯,可視化操作,但也有中文問題。典型的是加入itext后,中文顯示亂碼,并且導出到PDF后也亂碼,解決方法經過探索后有如下方法解決:
1 在ireportlib目錄下,添加iText亞洲語言包(http://itext.sourceforge.net/downloads/iTextAsian.jar.),itext-1.01.jar;
2 在itext文本的屬性框中,設置字體的屬性為:
font name: SansSerif
PDF font name: STSong-Light;
pdfEncoding =UniGB-UCS2-H
將PDF embedeed encoding前的勾選上,并在下拉表中選擇UniGB-UCS2-V (Chinese Simplified)
這樣就可以解決了

a、iReport的輸出格式····
iReport的預覽輸出格式可以支持以下幾種:
PDF、HTML、CSV、JAVA2D、Excel、純文字、JRViewer,其中最常用的是PDF、JRViewer。
本文以JRViewer為例子。JRViewer是直接以C/S方式作為報表的輸出格式,在JFrame框架下輸出。Jasperreport提供默認的JRViewer輸出類。
b、報表的動態對象變量、參數、字段····
在使用iReport的過程中會碰到很多與變量(Variables)、參數(Parameters)、字段(Fields)這些有關的內容,我們要介紹這些對象的使用和意義:
·字段(Fields):是數據庫抽取出來的,希望在報表中出現的數據庫內容。
比如一個ID的所有值。$F{ filedsName }
·參數(Parameters):這是你的應用需要提供給報表的入口,
比如你希望在報表被解釋的時候提供Where語句的條件值,
那么就可以使用參數(Parameters)。$P{ parameterName }
·變量(Variables):這是報表中一些邏輯運算的表現,比如統計值。$V{ variablesName }
每種對象的定義格式如每個對象的后面說明,比如定義一個變量(Variables),
那么表達式就寫成$V{ variablesName },報表中出現的就是這個變量的名稱。


一個報表的結構大致是幾個部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
·Title:每個報表一般會有一個名字,比如×××銷售報表,title就是擱置這個名稱的最好地方了,當然你也可以根據需要擱置在合適的地方。
·pageHeader:報表的一些公共要素,比如頁碼、創建時間、創建人等信息放置在這里是比較好的選擇。
·columnHeader:無可非議的這里是放置列的名稱,記住不是列數據。
·Detial:放置需要循環的數據,比如銷售記錄數據。
·columnFooter:放置列級別的統計計算值或是列的說明。
·pageFooter:放置頁級別的統計值或是頁的說明。
·Summary:可能需要對幾頁(你的報表可能有幾個頁組成)的統計值。比如50個銷售記錄共占用了3頁,那么放置這些統計記錄的統計值最好的地方就是summary。
·groupHeader:每個表的內容可能需要根據某個屬性進行劃分顯示內容和計算內容,比如希望以月份為單位每組分開顯示銷售記錄,那么就可以定義一個組(組的定義參考后文),groupHeader就是放置組說明或是組標志最好的地方。
·Groupfooter:放置組的統計或是說明 <iframe width="490" scrolling="no" height="150" frameborder="0" align="middle" style="width: 490px; height: 150px;" src="http://www.blogbao.com/script.aspx?userid=45735&amp;AdType=0&amp;AdstyleID=49847&amp;Direction=1" marginheight="0" marginwidth="0"> </iframe>

jasperReport學習


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 长治市| 日土县| 乌恰县| 宁城县| 新乐市| 正阳县| 乐昌市| 澳门| 漳州市| 府谷县| 阜南县| 从化市| 安龙县| 大冶市| 普宁市| 万年县| 天津市| 广宗县| 海原县| 汉寿县| 巍山| 景泰县| 桓仁| 杭锦旗| 桓台县| 连州市| 杂多县| 孙吴县| 潮州市| 凤山县| 德格县| 中卫市| 万荣县| 江阴市| 南岸区| 郓城县| 灵宝市| 合肥市| 玉环县| 高清| 沙雅县|