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

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

jasperReport學習

系統 1863 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條評論
主站蜘蛛池模板: 日本久久精品免视看国产成人 | 欧美一区2区三区3区公司 | 九九精品视频免费 | 免费观看一级特黄三大片视频 | 日韩欧美高清在线观看 | 欧美在线播放成人免费 | 日韩伦理一区二区三区 | 色 综合 欧美 亚洲 国产 | 精品久久久久久影院免费 | 毛片直接看 | 男人影院在线 | 大学生不戴套毛片视频 | 欧洲色综合精品 | 亚洲一区二区观看 | 一级特黄一欧美俄罗斯毛片 | 久久精品久久精品国产大片 | 蜜桃综合 | 久久视频免费 | 亚洲女人天堂a在线播放 | 色就操 | 免费国产之a视频 | 久久精品国产亚洲婷婷 | 成人欧美| 青草久久久 | 在线看片777av免费观看 | 99成人国产精品视频 | 国产色婷婷 | 亚洲精品99久久久久久 | 亚洲成人在线播放视频 | 成人欧美一区二区三区在线观看 | 91在线品视觉盛宴免费 | 成人免费视频网 | 久久久久青草 | 国产成人精品日本亚洲专一区 | 日韩欧美国产一区二区三区 | 国产亚洲一欧美一区二区三区 | 一级爱爱片一级毛片-一毛 一级白嫩美女毛片免费 | 一级一毛片a级毛片 | 欧美精品福利视频 | 国产日韩精品一区二区 | 国产自产视频在线观看香蕉 |