iReport 和 Jasperreport 整合開發 WEB 報表精靈(二)

來源:互聯網
上載者:User

在上一篇文檔裡我們初步介紹了 iReport 和 Jasperreport,基本上我們已經對它們有了一個最初的認識,在今天這篇文檔裡,我將深入的對 iReport 這個工具進行說明。

接著上篇文檔的結尾,如果我們成功運行 iReport 的話,可以看到如下的主介面:

點擊“新增” 按鈕可以建立一個新的空報表,考慮到產生後的XML檔案編輯的時候可以顯示中文,請在 xml encoding 選項上 GB2312 (沒有選項自己手動輸入),如:

當設定完必要的選項點擊完成可以得到一個空白的報表,如:

好了,輸入一段文本,很簡單,點擊建立“靜態文本”按鈕 ,然後在報表任何一個工作區(如 title,pageheader,detail,pagefooter summary 等等)輸入,如輸入“今天天氣不錯!”。在屬性框頁可以對輸入的內容進行屬性控制,如字型,顏色,大小,以及其他的屬性,報表中任何的元素(靜態文本,線,框等等)都有自己的屬性頁面,一般雙擊任何元素都可以彈出該元素的屬性頁面,屬性頁面如:

完工,一個最簡單的報表就產生了,iReport 配有運行環境,如下快捷按鈕:

左邊的按鈕是運行靜態報表(無需資料庫環境),右邊的是運行動態報表(這時需要設定資料庫連接,資料庫的串連載下面介紹)

那麼經過上遍的努力,很顯然我們將要啟動並執行靜態報表,那麼點擊左邊的按鈕就可以看到下面的 pdf,

當然上遍的例子是最簡單,呵呵

下面我將採用問答的方式進行逐步講解 iReport 的用法
1. 如何串連資料庫?
2. 如何定義變數、參數以及欄位?
3. 如何定義字型以及如何使用自訂的字型(如黑體、楷體或者比較藝術化的子體)?
4. 如何執行 SQL 指令碼進行查詢?
5. 如何把做好的報表引入到應用程式中?

好了,針對上面的問題,我在下面的篇幅中給於解答並穿插介紹 iReport 中其它的功能菜單。

1. 如何串連資料庫?

靜態報表其實很少的,我在前一篇文檔中有提到過一句經典的話:“A datasource + a jasper = a print” 因此有必要首先介紹一下如何串連資料庫,其實很簡單。進入 Datasource/Connections/Datasources 菜單或者點擊 快捷按鈕,則出現下面屬性頁面:

進行必要的資料庫連接屬性配置,然後點擊test按鈕進行測試,如果提示測試成功,則儲存資料庫連接,即可。

2. 如何定義變數、參數以及欄位?

變數、參數以及欄位的定義,在 iReport 裡是比較方便的,在菜單 view 下可以看到一些控制點,如:

Report properties 設定報表屬性

Report query 設定查詢語句的,這個在下面有介紹

Report fields 設定欄位(資料庫)

Report variables 設定變數

Report parameters 設定參數

Report fonts 設定字型

順便把下面的你個也說明一下

Bands,彈出報表工作區(如 title detail 等)的屬性頁面

Report groups 設定組

Element properties 元素屬性頁面

Element browser 顯示報表所有元素的列表

設定很容易,但是在報表中引用這些變數、參數和欄位就有寫說頭了,呵呵J,讓我們一步一步慢慢來。
在 iReport 中引用的方式,如下表

元素 名稱 引用
變數 variablesName $V{ variablesName }
參數 parameterName $P{ parameterName }
欄位 filedsName $F{ filedsName }

其實這些不說明好像不知道如何辦,一單說明了,它們也是很好用的也很簡單的。多用吧!

3. 如何定義字型以及如何使用自訂的字型(如黑體、楷體或者比較藝術化的子體)?

因為考慮到使用亞洲字型,因此你需要下在額外的 ja r包 iTextAsian.jar,如果 iReport 下載包中含有此 jar 包,此步驟可免。

目前在 iReport 中使用中文字型,好像只有宋體一種,如果想用其它的字型(如黑體、楷體等)需要另外的方法,這在下面介紹,下面介紹如何使用常用的中文字型“宋體”的設定方法,在問題2中我們看到引入字型的選項,點擊 “Report fonts” 可以看到下面屬性頁面:

好,如上邊的設定就已經設定好宋體,以後在報表的任何地方都可以引用該字型,如下面我們要把我們在上邊的例子中的元素“今天天氣不錯!”改為用宋體,如下:

這樣只要我們在 Report font 選項中選中 songti 那麼下面的屬性自動繼承,呵呵,方便吧!
好,下面講述如何使用宋體以外的中文字型,如:黑體、楷體或其他的藝術化的字型。

也很簡單,不過好像目前 iReport 的功能不夠完美的緣故,還要手動修改 xml 檔案才可以達到要求,如我們定義黑體:

首先不同的是在 PDF font name 選項中選中 External TTF font…,按照常理,此時要在緊接著的選項中選擇黑體的 ttf 檔案 SIMHEI.TTF,可是不知為什麼 TrueType font 的選項是空的,(當時我在學習的時候,這步操作讓我好勝鬱悶),天啊,該怎麼辦?!

後來我查看了相應的 xml 檔案,如下:(由於檔案較大,因此只截取我們關心的)

 

<staticText>
  <reportElement
    mode="Opaque"
    x="13"
    y="42"
    width="239"
    height="53"
    forecolor="#000000"
    backcolor="#FFFFFF"
    positionType="FixRelativeToTop"
    isPrintRepeatedValues="true"
    isRemoveLineWhenBlank="false"
    isPrintInFirstWholeBand="false"
    isPrintWhenDetailOverflows="false"/>
  <textElement textAlignment="Left" verticalAlignment="Top" lineSpacing="Single">
    <font fontName="黑體" pdfFontName="" size="36" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="true" pdfEncoding ="Identity-H" isStrikeThrough="false" />
  </textElement>
  <text></text>
</staticText>

大家可以看到黑體的 pdfFontName=”” 是空的,於是我嘗試把系統黑體的TTF檔案路徑(C:/WINNT/fonts/SIMHEI.TTF)寫到這個地方,哈哈,居然成功了。

於是我得到這樣一個結論,目前如果你在報表中使用其它的字型,首先要做上面圖中所做的屬性設定,然後手動把字型的 TTF 檔案寫到 pdfFontName=””,雖然麻煩了點,不過這招挺管用,呵呵!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.